Moderator Note:この質問にはすでに67件の回答が投稿されています(そのうちのいくつかは削除されています)ので、次の質問を投稿する前に***新しいことに貢献しているかどうかを考えてみてください。
git pull "と "git fetch "の違いは何ですか?
最も簡単に言えば、git pull
はgit fetch
の後にgit merge
を行います。
いつでも git fetch
を実行して、refs/remotes/<remote>/
にあるリモートトラッキングブランチを更新することができます。
この操作は、refs/heads
以下の自分のローカルブランチを変更することはなく、作業コピーを変更することなく安全に行うことができます。git fetch` をバックグラウンドの cron ジョブで定期的に実行している人の話も聞いたことがあります (ただし、これはお勧めできません)。
git pull`は、ローカルブランチをリモートバージョンに更新し、同時に他のリモートトラックブランチも更新するために行うものです。
Gitドキュメント - git pull:
デフォルトのモードでは、
git pull
はgit fetch
の後にgit merge FETCH_HEAD
を続けた略語です。
git fetch` の使用例としては、最後にプルした後にリモートブランチで変更があったかどうかを次のように知ることができます。つまり、実際にプルする前にチェックすることができます。
git fetch
git diff ...origin
See: https://git-scm.com/docs/git-diff Regarding double- and triple-dot syntax in the diff command
git-pull - 他のリポジトリやローカルブランチから取得してマージする SYNOPSISgit pull
... 説明 指定したパラメータで git-fetch を実行し、git-merge を呼び出して取得したヘッドを現在のブランチにマージします。 現在のブランチにマージします。--rebase を指定すると、git-merge の代わりに git-rebase を呼び出します。
なお、< には .(現在のディレクトリ) を
として指定すると、ローカルリポジトリからヘッドを取り出します。 これは、ローカルブランチを現在のブランチにマージするときに便利です。 これは、ローカルブランチを現在のブランチにマージするときに便利です。 これは、ローカルブランチをカレントブランチにマージするときに便利です。また、git-pull 自体やその背後にある git-merge のためのオプションは、git-fetch のためのオプションよりも先に指定しなければならないことにも注意しましょう。
歴史をマージしてほしいときには pull しますが、ある人がこのあたりの記事に付けたように「コードがほしい」だけのときには fetch します。