Почему 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. Рекомендуется использовать его только в сценариях, которые нужно объединять неинтерактивно, но, конечно, его можно установить как часть среды оболочки, чтобы сделать его эффекты более постоянными.

Другие вопросы по тегам