Estoy escribiendo un script para automatizar una tarea de Git. Al hacer esto manualmente, hay algunos puntos en los que git abre vim para editar un mensaje de confirmación y tengo que escribir :wq
. ¿Hay alguna manera de enviar previamente estas pulsaciones de teclas desde mi script, pero solo si se abre vim? Alternativamente, ¿hay alguna manera de evitar abrir vim en primer lugar?
Estoy usando tcsh.
Respuesta1
En primer lugar, podrías evitar abrir Vim.
Una opción para ello es utilizar la opción --message=<message>
(o -m <message>
, para abreviar) para git subtree pull
. La desventaja es que no puedes usar el mensaje predeterminado proporcionado por git y en su lugar tienes que crear el tuyo propio. La ventaja es que esto debería funcionar en casi cualquier lugar donde git necesite un mensaje de confirmación.
Otra opción quehaceusar el mensaje predeterminado es cambiar el "editor" que git abre a cat. Sólo recuerda volver a cambiarlo inmediatamente después de:
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
La ventaja de esto es que puedes usar el mensaje predeterminado proporcionado por git. La desventaja es que esto no funcionará si el mensaje de confirmación predeterminado está vacío, como es típico cuando se hace un archivo git commit
.