Вы можете установить имя коммиттера и адрес электронной почты, когда выполняете squa sh, установив для переменных среды GIT_COMMITTER_NAME
и GIT_COMMITTER_EMAIL
соответствующее значение. Это заменит значение по умолчанию и позволит вам настроить его.
Что касается изменения сообщения, вам не нужно --no-edit
, потому что вы действительно хотите его отредактировать, но вы также не хотите -m
, потому что это переопределяет все сообщение. Что вам действительно нужно, так это скрипт, который редактирует ваше сообщение коммита для использования в качестве редактора.
Вы действительно можете указать такой скрипт, используя GIT_EDITOR
, и он должен принимать один аргумент в качестве имени файла чтобы отредактировать, он должен отредактировать его на месте (или перезаписать файл своей копией), и он должен выйти из 0. Если вы используете стандартную среду Unix, сценарий оболочки, который вызывает программу, такую как ex
или ed
может быть хорошим выбором. Вы также можете использовать sed
для записи во временный файл, а затем mv
поверх исходного файла.
Таким образом, ваш вызов будет выглядеть примерно так:
GIT_COMMITTER_NAME="$(git log -1 --format=%an "$BRANCH")" \
GIT_COMMITTER_EMAIL="$(git log -1 --format=%ae "$BRANCH")" \
GIT_EDITOR="script/to/merge-editor" \
git merge --squash "$BRANCH"