Forkを用いたcherry-pickを行う方法

前提

  • Fork for Windowsを利用していること(※1)
  • cherry-pick(※2)を知っていること

※1 とはいえ、Mac版とかも同じかとは思いますが…
※2 ざっくり書くと、対象ブランチにコミットした内容を他のブランチに反映する際に、手でせっせこコピペ&コミットするのではなく、もう少し機械的に行う作業のこと

方法

1. まずは自分がコミットしたいブランチに対してモジュールをコミットする。
2. 別のコミットしたいブランチに切り替える。
3. 先ほどコミットした対象を右クリックし、Cherry-pick Commitをクリックする。

cheryy-pickを実行するための選択方法
4. ポップアップが出るのでOKを選択する。
5. コンフリクトしなければそのままコミットされるので、その後プッシュすればリモートリポジトリに反映できる。コンフリクトした場合は、マージ作業を行い、その後コミット&プッシュすれば良い。

補足事項

  • マージと比べ、どこから引っ張ってきたのか分からないので、追跡性には乏しい。とはいえ、手作業でブランチ切り替えてせっせこコミットするのと比べれば、段違いである。
  • 対象コミットの一部分のみをcherry-pickみたいなのは行えない(私がやり方知らないだけかも)ので、コミットする粒度は考える必要がある。但し、小さくし過ぎると、それだけcherry-pickする回数が増えるので、どの様な単位でコミットすべきかはケースbyケースである。

git-fork.com