Volver a escribir el mensaje de confirmación más reciente
Puede cambiar el mensaje de confirmación más reciente mediante el comando git commit --amend
.
En Git, el texto del mensaje de confirmación es parte de la confirmación. Cambiar el mensaje de la confirmación cambiará la commit ID-- es decir, el checksum de SHA1 que designa la confirmación. Efectivamente, estás creando una nueva confirmación que reemplaza a la anterior.
La confirmación no se ha subido en línea
Si la confirmación solo existe en el repositorio local y no se ha insertado en your GitHub Enterprise Server instance, puede modificar el mensaje de confirmación con el comando git commit --amend
.
- En la línea de comando, desplázate hasta el repositorio que contiene la confirmación que deseas modificar.
- Escriba
git commit --amend
y presione Entrar. - En tu editor de texto, edita el mensaje de confirmación y guarda la confirmación.
- Puedes agregar un coautor al agregar una introducción a la confirmación. Para más información, vea "Creación de una confirmación con varios autores".
El nuevo mensaje y la confirmación aparecerán en your GitHub Enterprise Server instance la próxima vez que subas un cambio.
Puede cambiar el editor de texto predeterminado para Git si modifica el valor core.editor
. Para más información, vea "Configuración básica del cliente" en el manual de Git.
Medificar mensajes de confirmación antiguos o múltiples
Si ya subiste la confirmación a your GitHub Enterprise Server instance, tendrás que subir forzadamente una confirmación con un mensaje modificado.
Desalentamos enfáticamente que se realicen subidas forzadas, dado que esto cambia el historial de tu repositorio. Si haces subidas forzadas, las personas que ya hayan clonado tu repositorio tendrán que arreglar su historial local manualmente. Para más información, vea "Recuperación de la fusión mediante cambio de base ascendente" en el manual de Git.
Cambio del mensaje de la confirmación insertada más recientemente
- Siga los pasos anteriores para modificar el mensaje de confirmación.
- Use el comando
push --force-with-lease
para forzar la inserción sobre la confirmación anterior.$ git push --force-with-lease origin example-branch
Cambio del mensaje de mensajes anteriores o varios mensajes de confirmación
Si necesitas modificar el mensaje de varias confirmaciones o de una confirmación antigua, puedes utilizar un rebase interactivo y luego hacer una subida forzada para cambiar el historial de la confirmación.
-
En la línea de comando, desplázate hasta el repositorio que contiene la confirmación que deseas modificar.
-
Use el comando
git rebase -i HEAD~n
para mostrar una lista de las últimas confirmacionesn
en el editor de texto predeterminado.# Displays a list of the last 3 commits on the current branch $ git rebase -i HEAD~3
La lista se verá parecida a la siguiente:
pick e499d89 Delete CNAME pick 0c39034 Better README pick f7fde4a Change the commit message but push the same commit. # Rebase 9fdb3bd..f7fde4a onto 9fdb3bd # # Commands: # p, pick = use commit # r, reword = use commit, but edit the commit message # e, edit = use commit, but stop for amending # s, squash = use commit, but meld into previous commit # f, fixup = like "squash", but discard this commit's log message # x, exec = run command (the rest of the line) using shell # # These lines can be re-ordered; they are executed from top to bottom. # # If you remove a line here THAT COMMIT WILL BE LOST. # # However, if you remove everything, the rebase will be aborted. # # Note that empty commits are commented out
-
Reemplace
pick
porreword
antes de cada mensaje de confirmación que quiera cambiar.pick e499d89 Delete CNAME reword 0c39034 Better README reword f7fde4a Change the commit message but push the same commit.
-
Guardar y cerrar el archivo con la lista de confirmaciones.
-
En cada archivo de confirmación resultante, escribe el nuevo mensaje de confirmación, guarda el archivo, y ciérralo.
-
Cuando estès listo para subir tus cambios a GitHub, utiliza el comando push --force para subir el cambio forzadamente sobre la confirmaciòn antigua.
$ git push --force origin example-branch
Para más información sobre la fusión mediante cambio de base interactiva, vea "Modo interactivo" en el manual de Git.
Como se mencionó anteriormente, el modificar el mensaje de confirmación dará como resultado una confirmación nueva con una ID nueva. Sin embargo, en este caso, cada confirmación que siga a la confirmación modificada también obtendrá una ID nueva, ya que cada confirmación contiene también la id de su padre.
Si incluiste información sensible en un mensaje de confirmación, el subir dicha confirmación forzadamente con una confirmación modificada no eliminará la confirmación original de GitHub Enterprise Server. La confirmación anterior no será parte del clon siguiente; sin embargo, es posible que siga almacenada en el caché de GitHub Enterprise Server y que se pueda acceder a ella a través de la ID de la confirmación. Debes contactar a el administrador del sitio con la ID de confirmación anterior para que la purguen del repositorio remoto.