Могу ли я сделать быструю переадресацию по умолчанию в git?

Я действительно не могу вспомнить, какое время я использовал бы git merge, а не git rebase, и не хочу, чтобы появилось сообщение о фиксации. Есть ли способ настроить git для быстрой пересылки по умолчанию? Тот факт, что параметр --ff, по-видимому, подразумевает, что есть способ, но я не могу найти его в документации.

Ответ 1

Да, есть --no-ff. Вы можете настроить параметры слияния для каждой ветки, например.

git config branch.master.mergeoptions  "--no-ff"

добавляет следующее в ваш файл $(REPO)/.git/config:

[branch "master"]
    mergeoptions = --no-ff

Сноска: говоря о моем опыте, я в конце концов обнаружил, что переход с быстрой переходом на off был в основном полезен для новичков git, но как только ощущение, что рабочие процессы и концепции начинают погружаться в вас, определенно хотят избежать размытия вашего логарифма с помощью тонны бессмысленного "объединенного удаленного типа..blarf".

Ответ 2

По-видимому, в цепочке все еще есть нерешенный вопрос: как это сделать глобально (т.е. для всех ветвей)? Для записей мы можем использовать следующее:

git config --add merge.ff false

... чтобы он применим ко всем ветвям текущего репозитория. Чтобы он применим ко всем ветким во всех репозиториях, где кто-то не запускал его без опции --global (локальные настройки переопределяют глобальные), выполните следующие действия:

git config --global --add merge.ff false

В документации (поиск merge.ff):

merge.ff
По умолчанию git не создает дополнительного коммита слияния при объединении фиксации, являющейся потомком текущей фиксации. Вместо этого кончик текущей ветки быстро перенаправляется. Когда установлено значение false, эта переменная сообщает git создать дополнительное слияние в таком случае (что эквивалентно предоставлению опции --no-ff из командной строки). Если установлено только значение, допускаются только такие быстрые слияния (эквивалентно предоставлению опции --ff-only из командной строки).