GitHubのフォークを同期するメモ
の改良版。
何をしているか↓
Github で Fork してから Pull Request をするまでの流れ
これの後半と同じ。図があって分かりやすい。
##上流リポジトリを確認
upstreamが正しいか確認。originは自分のGitHubリポジトリ。
$ git remote -v
origin https://github.com/自分のユーザー名/リポジトリ名.git (fetch)
origin https://github.com/自分のユーザー名/リポジトリ名.git (push)
upstream https://github.com/上流リポジトリのユーザー名/上流リポジトリ名.git (fetch)
upstream https://github.com/上流リポジトリのユーザー名/上流リポジトリ名.git (push)
指定方法
$ git remote add upstream https://github.com/上流ユーザー名/上流リポジトリ名.git
##pull --rebase
上流リポジトリ(upstream)の最新の状態をローカルのファイルに同期させる。
git pull origin master
=git fetch
+git merge origin/master
git pull --rebase origin master
=git fetch
+git rebase master
mergeだとマージ履歴がそのままきれいに残る、そのせいで複雑になる。
rebaseは履歴がすっきりする、そのせいで(滅多に起こらないけど)コンフリクトした時の修正が大変。
らしい。
$ git pull --rebase upstream master
$ git fetch upstream
$ git merge upstream/master
##push
上流リポジトリ→ローカルのファイルの最新状態を自分のGitHubリポジトリ(origin)にプッシュする。
$ git push origin master
この後、GitHubでプルリク送ったり、作業したり。
##参考
git pull と git pull –rebase の違いって?図を交えて説明します!
Github で Fork してから Pull Request をするまでの流れ