git fetch と git pull は両方とも、リモート リポジトリをローカル リポジトリに更新できます。では、両者の違いは何ですか? この問題を明確にするために、いくつかの概念について説明する必要があります。
推奨事項 (無料): Git
FETCH_HEAD: ローカル ファイルに記録されているバージョン リンクです。リモート リポジトリから削除されたブランチの最終バージョンに。
commit-id: 各ローカル作業が完了した後、git commit 操作が実行され、現在の作業がローカル リポジトリに保存されます。このとき、commit-id が生成されます。バージョンを識別する一意のシリアル番号です。 git Push を使用すると、このシリアル番号もリモート ウェアハウスに同期されます。
上記の概念を踏まえて、git fetch について話しましょう
git fetch: これにより、git リモート内のすべてのリモート ウェアハウスに含まれるブランチの最新のコミット ID が更新され、記録されます。 .git/FETCH_HEAD ファイルに移動します。
git fetch を使用してリモート ウェアハウスを更新する方法は次のとおりです。
git fetch origin master:tmp //在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支 git diff tmp //来比较本地代码与刚刚从远程下载下来的代码的区别 git merge tmp //合并temp分支到本地的master分支 git branch -d temp //如果不想保留temp分支 可以用这步删除
(1) git fetch を直接使用する場合、手順は次のとおりです。
(2) git fetchorigin
フェッチするリモートを手動で指定するだけです。ブランチが指定されていない場合、通常はデフォルトの master
(3) git fetchorigin dev
はリモートのリモートと FETCH_HEAD を指定し、このブランチのコミットのみをプルします。
git pull: まず、ローカルの FETCH_HEAD レコードに基づいて、ローカルの FETCH_HEAD レコードとリモート ウェアハウスのバージョン番号を比較し、次に git fetch はリモート ウェアハウスの後続のバージョン データを取得します。現在指しているブランチを作成し、 git merge を使用してローカルの現在のブランチとマージします。したがって、 は、git pull は、git fetch と git merge の 2 つのステップを組み合わせたものであると考えることができます。
git pull の使用法は次のとおりです:
git pull <远程主机名> <远程分支名>:<本地分支名> //取回远程主机某个分支的更新,再与本地的指定分支合并。
したがって、git fetch は 最新バージョンをリモートからローカルに取得しますが、自動的にはマージされません。
そして git pull はすべてのリモート インデックスを取得し、それらをローカル ブランチ にマージします。効果が同じなら git pull の方が速いです。
以上がgit fetch と git pull の違いを見てみましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。