Как сделать git merge default be --no-ff --no-commit?

Политика компании заключается в использовании --no-ff для коммитов. Мне лично нравится настраивать сообщения журнала слияния, поэтому я использую --no-commit. Кроме того, мне нравится на самом деле компилировать и тестировать, прежде чем я разрешу совершить коммит.

Как мне сделать --no-ff и --no-commit значение по умолчанию для всех ветвей?

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

Ответ 1

Поместите это в $HOME/.gitconfig:

[merge]
    ff = no
    commit = no

Вы можете использовать git -config для этого:

  git config --global merge.commit no
  git config --global merge.ff no

Ответ 2

Чтобы сделать --no-ff --no-commit поведение слияния по умолчанию, установите параметры no, используя:

git config --global merge.ff no
git config --global merge.commit no

Однако проблема заключается в том, что git pull= git fetch + git merge. Поэтому всякий раз, когда вы вытаскиваете с удаленного сервера, вы создадите уродливое объединение слияния, когда будет гарантирована простая быстрая перемотка вперед. Чтобы решить эту проблему, установите pull.ff в yes:

git config --global pull.ff yes

Ответ 3

Начиная с версии 1.7.6 из git, вы должны использовать

git config [--global] merge.ff no

чтобы "принудительно" использовать --no-ff в каждом слиянии.

По умолчанию поведение

git config [--global] merge.ff yes

И с

git config [--global] merge.ff only

он откажется от несанкционированных слияний

Ответ 4

В соответствии с руководство, вы должны использовать

$ git config [--global] merge.ff false

чтобы установить опцию быстрой перемотки по умолчанию для всех ветвей с помощью утилиты git -config.