Hola, encontramos la respuesta a lo que necesitas, desplázate y la verás aquí.
Solución:
Esto parece ser un error que aún no se ha solucionado (aunque hay parches propuestos para ello). Como solución alternativa, puede proporcionar el mensaje en la línea de comandos:
git commit --amend -m "foo"
Si necesita editar su último mensaje de confirmación (HEAD), use git commit --amend -m 'new message'
$ git commit --allow-empty --allow-empty-message -m ''
[master 5db8236]
$ git commit --amend
fatal: commit has empty message
$ git commit --allow-empty --amend -m 'new message'
[master d383d5c] new message
Tenga en cuenta que estoy usando --allow-empty
solo para forzar git commit
crea un compromiso vacío y --allow-empty-message
para forzar git commit
para crear una confirmación con un mensaje vacío.
A partir de git 2.0.1 (25 de junio de 2014), git ya no se quejará de un mensaje de confirmación vacío cuando rebase e intente poner uno.
Ver compromiso 076cbd6 por Jeff King (peff
)
commit
: no te quejes de los mensajes vacíos de -C
Cuando elegimos el mensaje de otra confirmación,
die()
inmediatamente si encontramos que está vacío y no vamos a ejecutar un editor (es decir, al ejecutar “-C
” en lugar de “-c
“).
Sin embargo, esta verificación es redundante y dañina.Es redundante porque ya notaremos el mensaje vacío más tarde, después de haber ejecutado el editor y morir allí (tal como lo haríamos para un regular, no “
-C
” caso, donde el usuario proporcionó un mensaje vacío en el editor).Es perjudicial por varias razones:
- no respeta
--allow-empty-message
. Como resultado, un “git rebase -i
” no se puede “elegir” una confirmación de este tipo.
Así que ni siquiera puedes retroceder en el tiempo para arreglarlo con un “reword
” o “edit
” instrucción.- No tiene en cuenta otras formas además del editor para modificar el mensaje.
Por ejemplo, “git commit -C empty-commit -m foo
” podría tomar la información del autor de la confirmación vacía, pero agregarle un mensaje.
Hay más que hacer para que funcione correctamente (y en este momento lo prohibimos explícitamente “-C
con-m
“), pero esto elimina un obstáculo.- La verificación existente no es suficiente para evitar fallas de segmento.
Tratamos de encontrar el “nn
” límite de encabezado/cuerpo en la confirmación. Si está al final de la string (es decir, sin cuerpo), o si no podemos encontrarlo en absoluto (es decir, un objeto de confirmación truncado), consideramos que el mensaje está vacío.
Con “-C
“, está bien; nosotrosdie
en cualquier caso. Pero con “-c
“, continuamos, y en el caso de una confirmación truncada puede terminar desreferenciandoNULL+2
.
Nota: con Git 2.19, git rebase
utilizará --allow-empty-message
por defecto.
Consulte “Reorganización de un historial de git con mensajes de confirmación vacíos”.
Sin embargo, asegúrese de usar Git 2.25 (primer trimestre de 2020): la maquinaria del secuenciador comparó el HEAD y el estado que está intentando confirmar para decidir si el resultado sería una confirmación sin operación, incluso al modificar una confirmación, que era incorrecta, y Ha sido corregido.
Ver commit 2d05ef2 (22 de noviembre de 2019) por Phillip Wood (phillipwood
).
(Fusionado por Junio C Hamano — gitster
— en commit c920859, 5 de diciembre de 2019)
sequencer
: corrige la verificación de confirmación vacía al modificarFirmado por: Phillip Wood
Esto corrige una regresión introducida en 356ee4659b (“
sequencer
: intente realizar la confirmación sin bifurcar ‘git commit'”, 2017-11-24, Git v2.17.0-rc0 — fusión enumerada en el lote n.º 2).
Al modificar un compromisotry_to_commit()
estaba usando el padre incorrecto al verificar si la confirmación estaría vacía. Al enmendar tenemos que comprobar contraHEAD^
noHEAD
.Esa serie mutará estas pruebas para comprobar que el consejo incluye sugerir
rebase --skip
para omitir la corrección que vaciaría la confirmación.
Aquí tienes las comentarios y valoraciones
Recuerda algo, que tienes concesión de valorar este tutorial si te ayudó.