はじめに マージコミットを含む大きめのgitブランチを,別のブランチに持って行きたい状況が発生したのでメモ*1. 取り込みたいブランチを1コミットにまとめ,これを取り込み先ブランチにcherry-pickマージする方法を記す*2. なお,複数コミットを1コミットにまとめる方法について,一般にはgit rebaseでsquashやfixupを用いることが多い*3が,マージコミットに対してはうまくいかなかった*4. そこで,ここでは取り込みたいブランチについて差分パッチを作成し適用するという方法をとった. やりかた # Xを1コミットにまとめるための一時的なブランチ(B_dummy)を作成 git checkout A1 git checkout -b B_dummy # B1〜B3をパッチ化(参考[3]) git diff --binary A1..B3 > X.patch # パッチをB_