Почему git запрашивает сообщение о коммите после слияния?
Недавно, после любого git pull
, git начал порождать мой текстовый редактор и запрашивать сообщение фиксации слияния. Сообщение о коммите уже предварительно заполнено, и мне просто нужно сохранить и закрыть окно, чтобы завершить извлечение.
В прошлом он выполнял бы слияние в молчании со стандартным сообщением фиксации (в соответствии с Merge branch 'dev' of remote.com:/repo into dev
).
Я недавно обновил git до версии 1.7.11.3 (через homebrew), но не могу придумать ничего другого, что я мог бы сделать, чтобы изменить это поведение. Это настройка или есть какой-то способ вернуться к тому, что было?
3 ответа
В git 1.7.10 разработчики git решили, что слияния совершаются слишком легко. Как объясняется в этом сообщении в блоге, принудительное поведение сообщений интерактивной фиксации должно сделать эти сообщения фиксации более подробными и снизить общую частоту ненужных слияний.
Вы можете использовать --no-edit
флаг, чтобы избежать этого поведения, но, ну, не надо. Коммиты слияния, как и любые коммиты в историю, должны быть хорошо построены. Ваша история должна быть только полезной.
Чтобы создать ярлык для использования в будущем:
Отредактируйте свой ~/.gitconfig
со следующим:
[core]
mergeoptions = --no-edit
Или выполните следующее в Терминале
git config --global core.mergeoptions --no-edit
Во-первых, обратите внимание на предупреждения в ответе Кристофера выше.
Затем, если вы все еще хотите отключить автоматическое редактирование сообщения коммита слияния, установите эту переменную среды:
GIT_MERGE_AUTOEDIT=no
Эта переменная окружения и ее настройка "нет" описаны на странице git merge doc. Рекомендуется использовать его только в сценариях, которые нужно объединять неинтерактивно, но, конечно, его можно установить как часть среды оболочки, чтобы сделать его эффекты более постоянными.