リベースを多用するワークフローの一環として、マスターブランチでマージを使用したいと考えています。特に、トピックブランチが最新のマスターコミットにリベースされた場合にのみマージしたいので、マージを早送りします。私はそれを使用することによってそれを達成することができます:
git merge --ff-only
さらに、トピックブランチと空のコミットの統合を記録したいので、その動作を強制する--no-ffを使用したいと思います。
git merge --no-ff
しかし、私が本当に望んでいるのは、両方の組み合わせです。些細な場合にのみマージしますが、とにかく記録させてください。Gitはそれを考えています
fatal: You cannot combine --no-ff with --ff-only.
これは自明のように見える人もいます。
git merge --edit --no-ff topicbranch
私も望む振る舞いを達成していません。では、問題のトピックブランチが最新のマスターコミットにリベースされている場合、どうすれば--no-ffオプションとマージできますか?
更新:チャールズベイリーの答えがうまくいくようです。これをgitエイリアスにロールインしたい場合は、ここでこれを発行できます。
git config --global alias.integrate '!test "$(git merge-base HEAD "$1")" = "$(git rev-parse HEAD)" && git merge --no-ff --edit $1 || echo >&2 "Not up-to-date; refusing to merge, rebase first!"'
一口ですが、機能します。オプションを使用したコミットメッセージ編集の強制に注意してください--edit
。