В качестве части нашего перегрузочного рабочего процесса я надеюсь использовать слияние на главной ветке. В частности, я хочу объединиться только тогда, когда ветвь темы была переустановлена на самую последнюю фиксацию хозяина, тем самым делая любое слияние быстрым. Я могу добиться этого, используя:
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
.