git cherry-pick で既に同じ変更が入っていて empty になる場合でも、そのまま空コミットとして残したいなら --allow-empty を使います。
実行時に「空でも許可する」場合
最初から「差分がなくてもコミットを作成してほしい」と分かっている場合は、コマンドにオプションを付け加えます。
git cherry-pick <commit-hash> --allow-empty
コンフリクト解消などで「結果的に空」になった場合
cherry-pick を実行した際にコンフリクトが発生し、それを手動で直した結果(あるいは --skip せずに進めたい場合)、差分がなくなってしまうことがあります。その場合は、続行する際にオプションを指定します。
git cherry-pick --continue --allow-empty
補足
--empty=keep
- cherry-pick / rebase の途中で、適用後に空になったコミットをどう扱うかを指定します。
- keep を指定すると、その空になったコミットをそのまま残します
使い分け
-
「最初から空のコミットを作りたい」→
--allow-empty -
「cherry-pick した結果、差分がなくなっても残したい」→
--empty=keep