Problemas al ingresar el mensaje de confirmación de Git con Vim


146

OS: Windows

yo escribo

$ git commit

luego

"# Ingrese el mensaje de confirmación"

Escribo un texto, como

"Validación de formulario agregada"

Presiona Enter y no confirmado. Luego presiono Shift + Enter, Ctrl + Enter, Alt + Enter - aún no comprometido.

Creo que es un problema estúpido, pero ¿qué debo hacer?


No hay problema. Pero su pregunta probablemente mejorará la atención sobre Super Usuario, que es más en el tema para este tipo de pregunta no la programación: superuser.com/questions/tagged/git
bzlm

Respuestas:


232

Si es VIM para Windows, puede hacer lo siguiente:

  • ingrese su mensaje siguiendo las pautas presentadas
  • presione Escpara asegurarse de que está fuera del modo de inserción
  • luego escriba :wqEntero ZZ.

Tenga en cuenta que en VIM a menudo hay varias formas de hacer una cosa. Sin embargo, aquí hay una ligera diferencia. :wqEnterSiempre escribe el archivo actual antes de cerrarla, mientras que ZZ, :xEnter, :xiEnter, :xitEnter, :exiEntery :exitEnterescribir solamente si el documento se modificó .
Todos estos sinónimos solo tienen diferentes números de pulsaciones de teclas.



1
Cuando entro :wq, veo el siguiente mensaje, ".git / COMMIT_EDITMSG" 54L, 2316C escrito Anulación de confirmación debido a mensaje de confirmación vacío.
Kanna

Asegúrate de haber agregado un mensaje. Cuando se le solicite, escriba algo como "mi mensaje aquí" (entrará en modo de inserción, supongo, presione esc para dejarlo). Una vez que haya terminado, y fuera del modo de inserción, escriba 'ZZ' (ZZ mayúscula)
Kpmurphy91

22
¿Por qué, a quién se le ocurrió esto? : wq Enter o ZZ suena loco.
dezman

1
El icomando para comenzar a insertar el texto del mensaje fue extremadamente útil. Gracias a @Matt Greer por eso. Esta respuesta fue buena para el resto de los pasos.
ps2goat

47

Supongo que está utilizando msys git. Si es así, el editor que está apareciendo para escribir su mensaje de confirmación es vim. Vim no es amigable al principio. Es posible que prefiera cambiar a un editor diferente. Si desea usar un editor diferente, mire esta respuesta: ¿Cómo uso Notepad ++ (u otro) con msysgit?

Si desea usar vim, escriba ipara escribir su mensaje. Cuando feliz golpea ESC. Luego escribe :wq, y git será feliz.

O simplemente escriba git commit -m "your message here"para omitir el editor por completo.


16
¿Vim alguna vez es amigable? ¿O la gente simplemente se acostumbra a su hostilidad?
Ryan Lundy

8
vim es amigable una vez que entiendes cómo funciona. En realidad es muy lógico y bien pensado.
Matt Greer

Si quiero usar caracteres que requieran escapar (por ejemplo, apóstrofes) en el mensaje de confirmación, siempre uso el editor vim porque es mucho menos molesto. De lo contrario, casi siempre escribo el mensaje de confirmación como parte del comando de confirmación.
David DeMar

Esto es genial cuando necesita modificar un mensaje de confirmación
shinzou

15

¿Has intentado simplemente ir: git commit -m "Mensaje aquí"

Entonces en tu caso:

git commit -m "Form validation added"

Después de haber agregado sus archivos, por supuesto.


1
Tu variante bien. Pero quiero seguir el camino de lo que escribí (traductor de Google)
aTei

No se preocupe, olvidé que había un editor después de ese comando. Raramente hago git commit sin un -m "Mensaje"
Tony

1

Por lo general, git commitmuestra un editor interactivo (en Linux y posiblemente Cygwin, determinado por el contenido de su$EDITOR variable de entorno) para que pueda editar su mensaje de confirmación. Cuando guarda y sale, la confirmación se completa.

Debes asegurarte de que los cambios que intentas confirmar se hayan agregado al índice Git; Esto determina lo que está comprometido. Ver http://gitref.org/basic/ para más detalles sobre esto.


0

Puede cambiar el carácter del comentario a algo además de # como este:

git config --global core.commentchar "@"
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.