【git】forkしたブランチに本家のmasterブランチの更新を反映する

Git forkしたリポジトリで作業をしている時、本家のmasterブランチの修正を取り込む手順です。

現状を確認(1)

$ git remote -v
origin https://github.com/[リポジトリ] (fetch)
origin https://github.com/[リポジトリ] (push)

更新用のリポジトリ(upstream)を作成する

$ git remote add upstream [fork元リポジトリ]

現状を確認(2)

$ git remote -v
origin https://github.com/[リポジトリ] (fetch)
origin https://github.com/[リポジトリ] (push)
upstream https://github.com/[fork元リポジトリ] (fetch)
upstream [fork元リポジトリ] (push)

upstreamをフェッチする

$ git fetch upstream
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 10 (delta 0), reused 4 (delta 0), pack-reused 0
Unpacking objects: 100% (10/10), done.
From https://github.com/[fork元リポジトリ]
 * [new branch]      master     -> upstream/master
これで upstream/master に本家リポジトリのmasterブランチが取り込まれる。
あとはこのブランチをforkしたブランチにマージするだけでOK!

本家のマスターブランチをマージ

$ git merge upstream/master
Updating 11054f7..3f2c2de
Fast-forward
 README.md                                 |   29 +++--
 index.html                                |   29 +++--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2 files changed, 701 insertions(+), 581 deletions(-)
※2回目以降は上記のfetchとマージを繰り返します。

$ git fetch upstream
remote: Enumerating objects: 358, done.
remote: Counting objects: 100% (313/313), done.
remote: Compressing objects: 100% (77/77), done.
remote: Total 239 (delta 186), reused 212 (delta 162), pack-reused 0
Receiving objects: 100% (239/239), 51.40 KiB | 923.00 KiB/s, done.
Resolving deltas: 100% (186/186), completed with 53 local objects.
From https://github.com/[fork元リポジトリ]
   5f3ddb1..4a16841  master                 -> upstream/master
上記のように出ればマージが必要です。
Fork元リポジトリのmasterブランチに更新がなければ、
$ git fetch upstream
Already up to date.
となります。

この記事へのコメント

スポンサーリンク