Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

git push の反対は git pull ではない

git push の反対は git fetch です。git pull ではありません。


  • git push は、ローカルのリポジトリの内容をリモートのリポジトリに送り込むコマンドです。
  • git fetch は、リモートのリポジトリの内容をローカルのリポジトリに取り込むコマンドです。


では、git pull は?

  • git pull は、まず、リモートのリポジトリの内容をローカルのリポジトリに取り込み、次に、現在のローカルのブランチに対して、それに対応するリモートのブランチをマージするコマンドです。


git pushgit fetch は、リポジトリだけを操作し、作業ツリーは無関係です。これに対して、git pull は、リポジトリだけでなく、作業ツリーも操作します。このため、git pushgit pull を対にして語るのは不自然だといえます。

git fetch を使おう

git fetch は作業ツリーを書き換えないので、気軽に実行できます。リモートの情報をいつでも取り込んでおきましょう。リモートに追随したくなったときに、自分の目でログを確認して、git merge FETCH_HEAD でマージすれば良いです。

git pull は妙に複雑なコマンドで、分かりにくいし、余計なことするし、いいことありません。こんなコマンドは忘れてしまいましょう。

これからは、リモートの取り込みは git fetch です。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
Help us understand the problem. What are the problem?