Ответ 1
Вам, вероятно, не нужно настраивать autosetupmerge - значение по умолчанию - true.
Я просто стучал в моем глобальном файле .gitconfig
, и я заметил, что мне удалось это сделать:
[branch]
autosetupmerge = always
autosetuprebase = always
Это казалось более чем немного противоречивым, но после некоторого чтения я до сих пор не знаю, нужны ли мне оба, или достаточно ли удалить autosetupmerge
и просто сохранить autosetuprebase
. Большинство проектов, в которых я работаю, имеют прямолинейный поток вниз по потоку вверх > , поэтому перезагрузка обычно предпочтительна при работе с ветвями.
Вам, вероятно, не нужно настраивать autosetupmerge - значение по умолчанию - true.
То, что здесь противоположно, - это обозначение этих предпочтений. Они выглядят так, как будто они относятся к одной и той же функциональности, но на самом деле они этого не делают:
autosetupmerge
управляет тем, что git branch
и git checkout -b
подразумевает параметр --track
, т.е. с настройкой always
,
git checkout branchname
, если branchname
существует на удаленном, но не локальном, создаст branchname
, отслеживая его удаленный экземплярgit checkout -b newbranch
создаст новую ветвь newbranch
, отслеживающую какую-либо ветвь, которую вы проверили, перед выдачей этой командыautosetuprebase
определяет, должны ли новые ветки быть настроены для переустановки на git pull
, т.е. ваш параметр always
приведет к тому, что ветки будут настроены так, что git pull
всегда выполняет rebase, а не слияние. (Имейте в виду, что существующие ветки сохраняют свою конфигурацию при изменении этой опции.)Поэтому имеет смысл иметь как autosetupmerge = always
, так и autosetuprebase = always
; на самом деле, и то, что у меня есть.
так как это первый хит, если вы ищете "autosetuprebase" с помощью google, вот совет:
git config --global branch.autosetuprebase always
Возможно, стоит упомянуть, что существует разница между autosetupmerge = always (в вашей конфигурации) и autosetupmerge = true (по умолчанию).
true только установит слияние для удаленных веток. всегда будут включать и локальные ветки.
Вероятно, вы хотите true.
Поскольку я искал другие возможные варианты "autosetuprebase", и для их поиска потребовалось некоторое время, вот они:
branch.autosetuprebase
Когда новая ветка создается с помощью git branch
или git checkout
, которая отслеживает другую ветвь, эта переменная сообщает Git настроить pull для rebase вместо merge (см. "branch..rebase" ).
never
, rebase никогда не устанавливается автоматически в true.local
, rebase устанавливается в true для отслеживаемых ветвей других локальных
ветки.remote
, rebase имеет значение true для отслеживаемых ветвей
ветки удаленного отслеживания.always
, для всех ветвей отслеживания будет установлено значение true.Источник: http://git-scm.com/docs/git-config.html