2016-11-22 11 views
0

なぜgit pullは新しく作成されたリモートブランチを含むすべてのものをプルしますが、git pull origin masterはそうではありません。'git pull'のデフォルトの動作

私はgit version 2.9.3.windows.2を使用しています。

答えて

3

ブランチを指定しない場合、デフォルト設定が使用されます。デフォルトでは、すべてブランチをリモートリポジトリにフェッチして更新することを意味します。詳細については、

参照ドキュメント:更新するために、地元のレフリーを取得し、どのへのREF

git pull [options] [<repository> [<refspec>…​]] 

<refspec>指定します。コマンドラインに<refspec>が表示されない場合、フェッチする参照は代わりにremote.<repository>.fetch変数から読み込まれます(git-fetch [1]を参照)。

出典:https://git-scm.com/docs/git-pull

参照ドキュメントは説明する:

あなたは、多くの場合、定期的に繰り返し、それからフェッチすることで、同じリモートリポジトリとの対話します。このようなリモートリポジトリの進行状況を追跡するために、git fetchではremote.<repository>.fetchの設定変数を設定することができます。

典型的には、このような変数は次のように見えるかもしれ:

[remote "origin"] 
    fetch = +refs/heads/*:refs/remotes/origin/* 

上記の例ではorigin(値の左側に一致する、すなわち、任意の参考文献、refs/heads/*)に存在するすべての分岐をフェッチし、 refs/remotes/origin/*階層内の対応するリモート追跡ブランチを更新します。

出典:それはあなたが一度に全体のリポジトリを同期させることができますので、https://git-scm.com/docs/git-fetch#CRTB

動作がデフォルトです。一度にすべてのローカルブランチを更新しない場合は、git fetchを使用してリポジトリを同期化し、git merge origin/<branch>を使用して各ローカルブランチを1つずつ更新します。

+0

仮面ライダー語で説明できますか? – Thaadikkaaran

+0

@JaganathanBantheswaran私は試しました。今すぐご確認ください。また、私は_why_質問に答えることに注意してください。別の問題がある場合(タイトルの中でリモートブランチをチェックすることはできませんでした)、あなたの質問に実際のコマンドとエラーメッセージを貼り付けてください。 – Melebius

1

そのあなたがgit pull関係なくフックのすべてのものとフィルタがローカルに追加されますと言うとき

本当に簡単です。一言で言えば、リモコンからすべてを取得し、.gitフォルダを更新します。あなたはフォルダ.git/logs/refs/remotes/origin/ に行くことができますあなたはあなたの地元で持っているすべての枝が表示されます。

これで、私のcmdからgit pullとタイプしました。

あなたが持っている地元の枝に関係なくカーテンの後ろに起こることは起こります。それは起源をフックアップし、あなたの地元にそこからすべてを得る。

しかし、git pull origin masterと入力してください。この中で、元のパス指定を与えるには、最新のmasterブランチが必要です。それで、マスターブラケットだけが引っ張られ、離れたところにあるようにリフレッシュされます。

したがって、origin masterは、パスとしてgit言語で呼び出されたパス仕様です。