20

git pullリポジトリからすべてのブランチを取得するのに取得しないのはなぜgit pull origin masterですか? 私はそれを難し​​い方法で発見しました。これら 2 つのコマンドの唯一の機能上の違いはありますか?

このような説明は何も教えてくれません:

git pull= git fetch origin+git merge origin/master

git pull origin master= git fetch origin master+git merge FETCH_HEAD

4

3 に答える 3

40

後者のコマンド は、特にブランチgit pull origin masterを取得してマージするように git に指示します(より正確には、 という名前のリモートから)。masterorigin

git pullリモート ブランチを追跡するすべてのローカル ブランチの更新をフェッチしてから、現在のブランチをマージします。

于 2013-07-05T00:40:23.993 に答える
9

ドキュメントからgit pull:

git pull指定されたパラメータで実行git fetchし、git merge を呼び出して、取得したブランチ ヘッドを現在のブランチにマージします

git fetch引数なしで呼び出すと、次のことが起こります

1 つ以上の他のリポジトリから、名前付きのヘッドまたはタグを、それらを完成させるために必要なオブジェクトと共にフェッチします。
git fetch[fetches] from (...) 単一の名前付きリポジトリ (...)

引数を追加すると、指定されたリモートとヘッド (=branch/tag/commit/...) のみがフェッチされ、マージされます。

于 2013-07-05T00:44:09.560 に答える