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

337
JETM

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

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

1
И что это за задача Git? Daniel B 7 лет назад 0
@DanielB `git subtree pull - префикс ветки репозитория foo / bar / path --squash` JETM 7 лет назад 0
Вы пытались использовать опцию `--message =` (или `-m`)` git subtree` для заблаговременного предоставления сообщения о коммите? Это должно избегать открытия vim в первую очередь. 8bittree 7 лет назад 1
@ 8bittree Хорошая идея. Желательно, чтобы я сохранил автоматически сгенерированное сообщение, но я уверен, что смогу выработать некоторые хакеры для его получения, если нет ничего проще. JETM 7 лет назад 0
@ 8bittree Отлично! JETM 7 лет назад 0
Я отредактировал ваш вопрос (в ожидании одобрения), чтобы больше сосредоточиться на вашей реальной проблеме, а не на одном конкретном потенциальном решении. Не стесняйтесь отклонить мою правку или отменить ее, если вы не согласны с моими изменениями. 8bittree 7 лет назад 0

1 ответ на вопрос

2
8bittree

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

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

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

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.