git cherry-pickでバルクpickする

master ブランチに最新のリソースをあてて、リリースの際は stable ブランチを切って、修正パッチがあれば stable ブランチにバックポートを当てる rails/rails 的な運用をしているブランチ戦略をとっている際に役立つ Tips 。

自分がよく使うのは以下のフォーマット。

% git cherry-pick <branch-name>~<commits-count>...<branch-name>

パッと出てきた PR 例が RuboCop というのはご愛嬌だが、例えば以下の PR のコミットを a-stable ブランチに持っていく場合は a-stable ブランチに移動して以下の cherry-pick を実行する。

f:id:koic:20180806190647p:plain

% git cherry-pick add_new_spec_to_project_spec~2...add_new_spec_to_project_spec

画像中、赤でハイライトしたブランチ名とコミット数を GitHub 上の内容そのまま使えば、その PR に積んでいるコミットすべてが a-stable ブランチに適用される。

kenchan が esm 時代最後に一緒に活動していたプロジェクトで教わった Tips となる。