2012-07-22 15 views
29

Empujé estúpidamente un compromiso con GitHub con un nombre de error muy complicado. ¿Cómo cambio esto?¿Cómo cambias el nombre de una confirmación de Git enviada a GitHub?

¿Funciona git commit --amend para la confirmación ya realizada?

+0

Use 'git commit --amend' seguido de' git push --force'. – vanza

+0

No recomendaría 'git push --force'. Quieres ser explícito y solo obligar a eso a lo que necesitas ser forzado. Por ejemplo: 'git push --force origin specific-branch'. También puede usar la forma abreviada de fuerza '-f'. Los formularios cortos también se pueden unir como una opción. P.ej. 'git push -uf origin mybranch' –

Respuesta

50
git commit --amend 

que traerá su editor, o

git commit --amend -m "Your new message here" 

que le permitirá especificar el nuevo mensaje en la línea de comandos. También es posible, pero más útil si tiene otra confirmación para volver a redactar

git rebase -i HEAD^ 
# then replace 'pick' with 'r' or 'reword' and save, editor should pop up again to edit the msg 

Debido a que este compromiso tiene un nuevo SHA1 debido al cambio de los contenidos, tendrá que forzar a empujar la nueva referencia. La fuerza es necesaria porque le dice a git que se olvide de la confirmación anterior. Es una medida de seguridad.

git push origin your-branch-name -f 
+3

Algo para tener en cuenta, si estás trabajando en un proyecto grande donde alguien ya ha revisado el compromiso que estás reemplazando, entonces su trabajo se vuelve muy difícil de fusionar in. –

+1

Si estás renombrando cosas, es realmente trivial. Todo lo que necesitan hacer es 'git fetch' y' git rebase origin/master' suponiendo que están trabajando en master. Sin conflictos, ya que no se modificaron las instantáneas. –

Cuestiones relacionadas