gitで上流(upstream)のリポジトリに追従する

creation date 2016/05/30 21:18 last date modified 2016/05/30 22:00 | category: | tags: gitCUI
スポンサード リンク

gitで clone したリポジトリを改変しながら追従するが, push はできない(しない)とき。常にclone元(上流)で行われた改変をclone先(下流)へ取り込まなくてはならない。そういうときは fetch して merge するようだ。つまり,以下の手順をとる。

まずは上流(upstream)から clone する。

$ git clone  git@github.com:user/upstream-project.git

下流のリポジトリとして設定しなおす。

$ git remote set-url origin git@github.com:user/local-project.git
$ git remote add upstream git@github.com:user/upstream-project.git

下流のリポジトリを更新するときはこんな良くある感じに。

$ git add -A
$ git commit -m "update: local repository"
$ git push origin master

上流の更新を持ってくるときは fetch して merge する。

$ git fetch upstream
$ git merge upstream/master

いちいち fetch して merge するのが面倒なら pull しても良い。

$ git pull upstream master

ただし, pullfetch + merge ではあるもののちょっと違うようだ。私はまだそこまで違いを気にするレベルにないが, Git pullを使うべきでない3つの理由 · DQNEO起業日記 という記事もあったので「git pull の落とし穴」にハマったらまた勉強したいと思う。一回ぐらいハマったほうが理解できるかもしれないからね。

Comments !

social