Есть ли способ программно добавить сообщение по умолчанию для git commit?

Я пытаюсь автоматически сгенерировать заголовок моего сообщения о фиксации, извлекаемый напрямую из Phrabricator или Jira.

У меня есть скрипт bash, который выполняет http-вызов и получает заголовок.

Я знаю, что вы можете иметь шаблон для каждого сообщения.

например.

~/.gitconfig

[commit]
    template = ~/.gitmessage

~/.gitmessage

Some template for user

Но возможно ли динамически генерировать шаблон коммита, используя скрипты bash или python?

4 ответа

Посмотрите на ловушку git на стороне клиента prepare-commit-msg. Смотрите https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks

Ловушка prepare-commit-msg запускается до запуска редактора сообщений фиксации, но после создания сообщения по умолчанию. Он позволяет редактировать сообщение по умолчанию до того, как его увидит автор коммита. Этот хук принимает несколько параметров: путь к файлу, в котором содержится сообщение о коммите, тип коммита и коммит SHA-1, если это коммит с изменениями. Этот хук обычно бесполезен для обычных коммитов; скорее, это хорошо для коммитов, где автоматически генерируется сообщение по умолчанию, например, для шаблонных сообщений коммитов, коммитов слияния, сжатых коммитов и исправленных коммитов. Вы можете использовать его вместе с шаблоном фиксации для программной вставки информации.

Вы хотите предоставить prepare-commit-msg крюк; образец появляется в .git/hooks/pre-commit.sample,

Ты можешь сделать git commit -m "Your default message" && git commit --amend,

В дополнение к другим ответам: если вы хотите зафиксировать немедленно (не запускать редактор с предварительно заполненным содержимым), попробуйте это:

git commit -m"$(... whatever command outputs your commit message ...)"
Другие вопросы по тегам