Как автоматизировать задачи git, требующие сообщения о коммите?

Как автоматизировать задачи git, требующие сообщения о коммите?

Я пишу скрипт для автоматизации задачи Git. Делая это вручную, есть несколько моментов, когда git открывает vim для редактирования сообщения о коммите, и мне приходится набирать :wq. Есть ли способ заранее отправлять эти нажатия клавиш из моего скрипта, но только если открывается vim? Или есть ли способ вообще не открывать vim?

Я использую tcsh.

решение1

Вы можете просто не открывать Vim вообще.

Один из вариантов — использовать опцию --message=<message>(или -m <message>, для краткости) для git subtree pull. Недостаток в том, что вы не можете использовать сообщение по умолчанию, предоставляемое git, и вместо этого должны придумать свое собственное. Плюс в том, что это должно работать практически везде, где git требуется сообщение коммита.

Другой вариант, которыйделаетиспользовать сообщение по умолчанию — изменить «редактор», который открывает git, на cat. Просто не забудьте сразу же вернуть его обратно после:

git config --local core.editor /path/to/cat
git subtree pull --prefix foo/bar/path repo branch --squash
git config --local core.editor /path/to/vim-or-other-editor

Плюс этого в том, что вы можете использовать сообщение по умолчанию, предоставляемое git. Минус в том, что это не сработает, если сообщение коммита по умолчанию пустое, как это обычно бывает при выполнении простого git commit.

Связанный контент