Estou escrevendo um script para automatizar uma tarefa Git. Fazendo isso manualmente, há alguns pontos onde o git abre o vim para editar uma mensagem de commit, e eu tenho que digitar :wq
. Existe uma maneira de pré-enviar essas teclas do meu script, mas somente se o vim abrir? Alternativamente, existe uma maneira de evitar abrir o vim em primeiro lugar?
Estou usando tcsh.
Responder1
Você poderia simplesmente evitar abrir o Vim em primeiro lugar.
Uma opção para isso é usar a opção --message=<message>
(ou -m <message>
, abreviadamente) para git subtree pull
. A desvantagem é que você não pode usar a mensagem padrão fornecida pelo git e, em vez disso, precisa criar a sua própria. A vantagem é que isso deve funcionar em qualquer lugar onde o git precise de uma mensagem de commit.
Outra opção quefazusar a mensagem padrão é alterar o "editor" que o git abre para cat. Apenas lembre-se de alterá-lo imediatamente após:
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
A vantagem disso é que você pode usar a mensagem padrão fornecida pelo git. A desvantagem é que isso não funcionará se a mensagem de commit padrão estiver vazia, como é típico ao fazer um arquivo git commit
.