Abortando la confirmación debido a un mensaje de confirmación vacío

81

Como usuario novato de git, cuando intento comprometer mi trabajo con

git commit -a -v

e ingreso un mensaje de confirmación en mi editor, cierro el archivo y obtengo este error:

Aborting commit due to empty commit message.

He leído casi todos los temas relacionados con este tema, he cambiado de editor, básicamente he intentado todo pero nada ayuda. ¿Qué tengo que hacer?

Una cosa que noté, mientras probaba todo el proceso con notepad ++, el archivo no se pudo guardar.

Una posible solución es la siguiente:

git commit -am "SomeComment"

Pero al hacerlo, siento que estoy anulando el propósito de usar git. Quiero documentar correctamente mis cambios.

cngkaygusuz
fuente
¿Qué versión de git para Windows estás usando?
Josh Lee
3
Lo único que anula aquí es no ingresar un mensaje de confirmación relevante. git commit -am "SomeRelevantComment"
NickSuperb
¿Qué error obtiene cuando intenta guardar el archivo desde su editor?
Karl Bielefeldt
Tuve ese problema en Windows 7, mientras trabajaba en archivos que estaban en `C: \ Archivos de programa`. Windows 7 protege contra la escritura en este directorio (y en cualquier lugar debajo), y dado que el archivo temporal (COMMIT_MSG o algo así) donde escribe su mensaje de confirmación se crea en el directorio .git, eso falló.
Gauthier
"documentar"? Hmm ...
Patrick

Respuestas:

138

Cuando estableces un editor en la configuración de Git, asegúrate de pasar el parámetro "-w" para forzar a Git a esperar el mensaje de confirmación que escribirías en tu editor personalizado.

git config --global core.editor "[your editor] -w"
Zakaria AMARIFI
fuente
1
Samesies en texto sublime 2. Probé un montón de otras cosas, esta fue la primera en funcionar. Gracias Zak.
Scott Silvi
Se arregló para mí usando sublime text 2, o gedit, como pruebas.
Sublime Text 3: -w DENTRO de las citas, genio. Estaba fracasando al usarlo fuera de las comillas, como he visto en muchos otros foros y ejemplos.
danjah
7
Para macvim, use en mvim -flugar de la -wbandera.
nishanthshanmugham
1
Parece que a veces hay un error cuando se utiliza una instancia existente de gedit para fijar un mensaje de registro, por lo que "gedit -w"no funcionó para mí, pero "gedit -s"o "gedit --standalone"trabajos.
jfv
42

Este error puede ocurrir si su comentario de confirmación es una sola línea que comienza con un #carácter. Por ejemplo, recibí este error cuando terminé con lo siguiente en la ventana del editor de texto de mi mensaje de confirmación:

#122143980 - My commit message was here. The number to the left is a Pivotal Tracker story/ticket number that I was attempting to reference in the commit message.
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch [MYBRANCH]
# Your branch is up-to-date with 'origin/[MYBRANCH]'.
#
# Changes to be committed:
#   modified:   [MYFILE1]
#   modified:   [MYFILE2]
#

El problema, por supuesto, es que mi mensaje de confirmación comenzó con un #carácter, por lo que git vio esa línea como un comentario y, en consecuencia, vio el mensaje de confirmación como vacío, ¡ya que no tenía más que comentarios!

La solución fue comenzar mi mensaje de confirmación con un carácter que no sea #.

En mi caso específico, incluir la ID de Pivotal entre corchetes hizo felices tanto a Git como a Pivotal :

[#122143980] My commit message here. 
Jon Schneider
fuente
3
GitLab tiene la misma sintaxis para los problemas, estoy acostumbrado a prefijar mis mensajes de confirmación con el identificador del problema y esto era un problema, el corchete del número del problema también funciona bien con GitLab.
Orbling
2
¡Eh, maravilloso, lo lograste! Me estaba volviendo loco, pero veo que de hecho había comenzado la confirmación con el número de problema de GitHub #xxxx Fixed: ...y cambiar esto a lo Fixed #xxxx: ...ha solucionado. Gracias.
Slartibartfast
Hice referencia a un problema de github usando #123 some message. funcionó durante la confirmación, pero falló más tarde al realizar la confirmación rebasemediante el editor.
Stafford Williams
20

Para código de Visual Studio

git config --global core.editor "code -w"

Para el átomo

git config --global core.editor "atom -w"

Para sublime

git config --global core.editor "subl -w"
Armin
fuente
1
Puede ser que desee comprobar la diferencia entre los dos primeros métodos
mcalex
¿Y cómo se vuelve a la configuración original? ¿O cómo lee la configuración actual?
Tim
8

Si desea comprometerse con una documentación adecuada (comentario largo de varias líneas), pero no quiere la -mopción, lo que puede hacer (y lo que hago cuando preparo mis confirmaciones ) es:

  • escriba su documentación (mientras realiza los cambios) en un archivo separado 'doc-commit' (o el nombre que quiera llamarlo)
  • comprometerse con un ' git commit -a -F /path/to/doc-commit')

En resumen, use un archivo separado (que puede estar en cualquier ruta que desee) como su mensaje de confirmación.

VonC
fuente
¿Podré hacer comentarios en ese archivo ( # my comment)?
borisdiakur
@Lego Sospecho que sí (no lo he probado directamente, pero debería tomar el contenido completo de su archivo de texto como un mensaje de confirmación.)
VonC
Acabo de probarlo: mis comentarios se trataron como parte del mensaje, por lo que parece que no es posible tener comentarios en el archivo de texto. De todos modos, me gusta el proceso de documentar los cambios en un archivo doc-commit separado mientras trabajo en una tarea. ¡Así que gracias!
borisdiakur
8

También soy un novato en Git. Encontré básicamente el mismo problema que el tuyo. Resolví esto escribiendo:

git commit -a -m 'some message'

La razón es que git no permite la confirmación sin mensajes. Tienes que asociar algunos mensajes con tu comando de confirmación.

Nada mas
fuente
5

Estaba teniendo este problema. Acabo de instalar 1.8.0 antes y descubrí que tenía que modificar ligeramente lo anterior. Soy muy nuevo en todo esto, pero esencialmente parece que, al comprometerse, usará content.editor, no core.editor, al menos si tienes algo configurado para content.editor.

Y asi fue

git config --global content.editor "pico -w"

que por fin me dejo comprometer! Obviamente, por supuesto, use cualquier editor que use.

¡Espero que esto ayude a alguien algún día!

salix
fuente
5

El git no permite la confirmación sin un mensaje especificado. ¿Ha especificado el mensaje de confirmación en el diálogo de confirmación?

Tenga en cuenta que las líneas que comienzan con # son tratadas como comentarios por Git y no son consideradas como comentarios y Git las ignora.

Yin
fuente
5

Primero elimine las entradas antiguas de los editores:

git config --global --unset-all core.editor
git config  --unset-all core.editor

Configure su editor:

  • Para el Bloc de notas ++

    git config --global core.editor "Notepad++ -w"
    git config core.editor "Notepad++ -w"
    
  • Para sublime

    git config --global core.editor "Notepad++ -w"
    git config core.editor "subl -w"
    
fizcris
fuente
4

He configurado mi editor atom como

git config --global core.editor "atom --wait"

pero cuando lo hice

git commit

cuando atom ya se lanzó, abrió una nueva pestaña para agregar comentarios, pero git no estaba esperando a que guardara el archivo y lanzó el mensaje "Aborting" instantáneamente. Cuando cerré Atom e intenté confirmar una vez más, git lanzó Atom y esperé a que se agregaran los comentarios.

Pavel Tsybulivskyi
fuente
4

En la máquina de Windows para el editor 'Sublime' también podemos agregar la siguiente línea en el archivo .gitconfig en la siguiente carpeta [SU LETRA DE DISCO]: / users / username /

[core]
  editor = '[YOUR DRIVE LETTER]:/Program Files/Sublime Text [YOUR VERSION NUMBER]/sublime_text.exe' --wait

Espero eso ayude.

Anmol Saraf
fuente
Para mí, esto crea un archivo llamado --wait. ¿Tiene un ejemplo de trabajo donde la ruta al archivo incluye espacios, como en Program Files? Gracias.
zx81
2

Espera un mensaje de confirmación.

Para vim : (también soy un novato. Hasta ahora solo he trabajado con vim)

Después de tu comando,

git commit -v

Serás dirigido a un archivo con el nombre

".git / COMMIT_EDITMSG"

Eso se abre en tu editor (que en mi caso es vim)

Encontrará una gran cantidad de texto comentado que se ve exactamente como lo que vio cuando lo hizo

git status  OR
git diff

Si se da cuenta, puede ver una línea vacía en la parte superior, donde espera un mensaje de confirmación. Puede escribir el mensaje de confirmación aquí y guardar y salir del editor. ¡Se hace!

AshlinJP
fuente
perfecto !!! Sé que habría una solución simple
Scott Stensland
2
git config --global core.editor "subl -w" -F 

Esto me ayudó después de muchas pruebas y errores, espero que alguien lo encuentre útil.

Ya había enlazado simbólicamente sublime 3 para usarlo como comando subl.

No tengo ni idea de por qué funcionó la bandera -F fuera de "".

Naman Sharma
fuente
1
No necesitaba la bandera -F; -w fue suficiente. -w le dice a Sublime que "espere a que se cierren los archivos antes de regresar" (desde subl --help).
Galen Long
1

Asegúrese de que una W mayúscula.

git config --global core.editor "open -a 'Sublime Text 2' -W"

o utilice el siguiente comando para reemplazar uno existente que no funciona correctamente.

git config --replace-all core.editor "open -a 'Sublime Text 2' -W"

Bradley4
fuente
1

Para comentar en Notepad ++ (Windows) haga esto:

1. Cree un archivo por lotes en algún lugar (por ejemplo, c: \ Users \ me \ scripts \ npp.bat)
Escriba esto en el archivo por lotes (dependiendo de dónde esté instalado su Notepad ++):

"C:\Program Files\Notepad++\notepad++.exe" -multiInst -notabbar -nosession -noPlugin "$*"

2. Guarde el archivo por lotes.
3. Abra .gitconfig (que generalmente se encuentra en su carpeta de usuario de Windows) y asegúrese de que
en la sección [core] tenga:

editor = '"c:\\Users\\me\\scripts\\npp.bat"'

O bien ejecutar:

git config --global core.editor '"c:\Users\me\scripts\npp.bat"'

4. Ahora realice algún tipo de confirmación, y se abrirá Notepad ++, git commit ahora esperará hasta que se cierre la ventana de notepad ++.

Mercurio
fuente
1

Para empezar, asegúrese de que su git esté configurado correctamente para abrir algún tipo de indicador del editor (visual studio / sublime / notepad ++ / atom, etc.) para continuar.

  • Para mi caso, configuré mi git para usar Visual Studio en el entorno Ubuntu.
  • Intenté realizar un cambio, falló con un fallo dado.
  • Luego miré mi .gitconfigarchivo y descubrí que faltaba mi editor-w parámetro
  • Corrí git config --global core.editor "code -w"mando y vuelto a inspeccionar mi .gitconfigarchivo, cuenta de la-w se añadió allí correctamente.
  • Intenté realizar el cambio de nuevo y funcionó para mí.

Espero que esto ayude a otros novatos como yo.

Karan
fuente
0

Solucioné el problema cambiando de mi elegante editor MacVim, que abre una nueva ventana, al vim predeterminado estándar en / user / bin / vim que se abre en la misma ventana que el shell desde donde se llama, y ​​eso parece haberse solucionado el problema.

slehar
fuente
1
simplemente necesita agregar la bandera -f, por ejemplogit config --global core.editor "mvim -f"
Ilias Karim
0

Tuve este problema y descubrí que si no pongo ningún comentario después de confirmar, me da ese error. Si salto para volver a la fiesta principal de inmediato, no se confirma. Para ser más claro, estoy usando GIT Bash, no otro editor.

Brenda Yanela Conzi
fuente
0

Cuando usé la ruta de archivo atom completa, no funcionó, así que en lugar de usar:

git config --global core.editor "c:/programs/atom/atom.exe -w"

Solía:

git config --global core.editor "atom -w"

y funcionó bien. ¡Buena suerte!

IMPORTANTE: Primero asegúrese de que atom comience a llamarlo correctamente directamente (atom) desde la línea de comando que está utilizando.

Juan Castellon
fuente
0

solución para cometer error

ingrese la descripción de la imagen aquí

Como mostré anteriormente, hay un campo de confirmación que debe ingresar mientras realiza la confirmación, esto es básicamente para el control de versiones y la comprensión de los cambios para cada confirmación.

Si no ingresa esto, obtendrá el error: Anulando la confirmación debido a un mensaje de confirmación vacío

Nota: lo anterior solo funciona en Rstudio commit y extrayendo los archivos.

Sanjay KV
fuente
0

Recibí este error y, aunque lo usé git config --global core.editor "code -w", todavía no esperaba a que cerrara el archivo. Simplemente abortaría instantáneamente.

Mi problema fue que había ejecutado este comando antes git config core.editor "code".

Parece que core.editor(que supongo que es una especificación de directorio de trabajo local), tuvo prioridad sobre --global core.editor.

Si git config --global core.editor "code -w"(o cualquier editor que esté intentando utilizar) no le funciona, intente omitir el --global.

Flujo
fuente