Политика компании - использовать --no-ff
для коммитов слияния. Мне лично нравится настраивать сообщения журнала слияния, поэтому я использую --no-commit
. Кроме того, я люблю компилировать и тестировать, прежде чем отпустить коммит.
Как сделать --no-ff
и --no-commit
по умолчанию для меня для всех веток?
(и за годы, прошедшие с тех пор, как я спросил об этом, я почти всегда доволен фиксацией, поэтому проще разрешить фиксацию по умолчанию, и пока я исправляю или иным образом исправляю что-то, прежде чем делать push, все хорошо...)
Ответы:
Поместите это в $ HOME / .gitconfig:
Для этого вы можете использовать git-config:
источник
branch.master.mergeoptions="--no-ff"
, либоmerge.ff="no"
(см. Ответ ниже)Чтобы установить
--no-ff --no-commit
поведение слияния по умолчанию, установите для параметровno
использование:Однако проблема в том, что
git pull
=git fetch
+git merge
. Таким образом, всякий раз, когда вы извлекаете данные с удаленного сервера, вы создаете уродливую фиксацию слияния, тогда как простая перемотка вперед была бы оправдана. Чтобы решить эту проблему, установитеpull.ff
наyes
:источник
merge.ff
вместо этого, то он этого не делает - он влияет только на явное слияние, в то время как оттягивание по-прежнему выполняет желаемую перемотку вперед.merge.ff = no
,git pull
создает коммиты слияния.git pull --rebase
( git-scm.com/docs/git-pull ) или настроитьbranch.autosetuprebase
( git-scm.com/docs/git-config.html )pull.ff = yes
Начиная с версии 1.7.6 git, вы должны использовать
"принудительно" использовать
--no-ff
при каждом слиянии.Поведение по умолчанию
И с
он откажется от слияния без перемотки вперед
источник
Согласно руководству , вы должны использовать
чтобы установить опцию без быстрой перемотки по умолчанию для всех веток с помощью утилиты git-config.
источник