gitでは、リモートリポジトリを複数登録できるのだが、このとき、あるリポジトリのあるコミット分だけ反映させたいという事がしたい時がある。
たとえば、オリジナルから派生して開発をしているが、オリジナルのバグ分だけ反映するといった使い方だ。
ここで、リモートリポジトリの登録から、そのリモートの変更分を取り込むまでの手順を記録しておきます。
もしかしたら、これよりいい方法があるかもしれませし、必要のない手順が含まれているかもしれませんが、
とりあえず、解決できる手順を覚書として記録しておきます。
1) リモートリポジトリを追加する
git remote add [name] [uri]
のようにします。
たとえば
git remote add myremote git://git.sourceforge.jp/xxxxxxx.xxxx.git
のようにします。
2) 追加したリモートリポジトリの情報をフェッチする
git fetch myremote
3) リモートから取り込みたいコミットを指定し、自分のワークにコミットする
git cherry-pick [commit-id]
commit-idとは、git logを指定すると表示されるやつで、具体的には
git cherry-pick 947559c50d59e15b4e5817d8091f3e2862fe293d
のように使う。
ちなみに、この処理は同時にコミットするが、コミットせずに、git add した状態でとめておきたいならば
git cherry-pick --no-commit [commit-id]
のようにすれば、OKだ。


