ということが github を使っているとそれなりにある。本家 github の変更を取り込む方法を調べた。
参考:
リモートリポジトリとして、オリジナルのリポジトリを upstream という名前で設定します。
$ git remote add upstream git://github.com/DQNEO/Renshu.git
以後、このリポジトリは upstream という名前で本家リポジトリを参照します。
ブランチを確認すると、以下のように remotes/upstream/master が加わったことが分かります。 出てこない場合には
git fetch upstream
を試した後に再度git branch -a
で確認してみてください。$ git branch -a * master remotes/origin/HEAD -> origin/master remotes/origin/master remotes/upstream/master
普段は origin として自分のリポジトリが登録されており、
そのリポジトリに対して push
や pull
を行っている。
今回の場合、端末A の remote に fork 元を upstream として加えることで、 端末A 経由で origin に upstream の変更を反映させることができるようになる。
本家リポジトリの変更を取り出すためには fetch と merge の手順を取ります。
まずfetch
$ git fetch upstream remote: Counting objects: 1, done. remote: Total 1 (delta 0), reused 1 (delta 0) Unpacking objects: 100% (1/1), done. From git://github.com/DQNEO/Renshu * [new branch] develop -> upstream/develop * [new branch] master -> upstream/master
カレントブランチを master にして、upstream/master を merge。
$ git checkout master Already on 'master' Your branch is up to date with 'origin/master'. $ git merge upstream/master Updating fe579f8..a1e70ae Fast-forward
変更が無い場合には “Already up-to-date.” と表示されて終わりです。今回は差分があったので、コミットIDがfe579f8からa1e70aeまでの差分がmergeされました。
この他、 fork 元のブランチを持ってくることなどもできる。
git checkout -b branchA upstream/branchA