tag remove practices crear best git git-push git-commit amend

remove - git tag best practices



Git evita empujar después de modificar un compromiso (3)

Usualmente, solo corro

git add file git commit git push

pero si modifico el commit antes de presionarlo (con git commit --amend ), el siguiente push falla con

hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Integrate the remote changes (e.g. hint: ''git pull ...'') before pushing again. hint: See the ''Note about fast-forwards'' in ''git push --help'' for details.

¿Cómo puedo dejar que git impulse los cambios sin fusionar ramas? Solo tengo una rama ( master ) y soy la única persona que usa este repositorio, entonces, ¿por qué dice esto?

git branch -a:

* master remotes/origin/HEAD -> origin/master remotes/origin/master

EDITAR: Usando gitk HEAD @{u} , veo que tengo 2 ramas, una con la confirmación original y otra con la confirmación modificada.


Esto solo debería ser el caso si está modificando una confirmación ya presionada. En general, nunca debes hacer eso ya que estás modificando el historial publicado. Sin embargo, en su caso, debería poder salirse con push -f , que sobrescribirá la confirmación remota con su revisión modificada.


Sí, no deberías hacer eso (presionar un compromiso, luego cambiarlo e intentar presionarlo de nuevo).

En su lugar, puedes retrotraer Git a tu confirmación anterior sin cambiar los archivos, y luego crear una nueva confirmación:

git reset --mixed origin/master git add . git commit -m "This is a new commit for what I originally planned to be an amendmend" git push origin master

esto creará una nueva confirmación con los cambios que estaba a punto de enmendar.


enmendó la confirmación extraída como en

git pull origin master git commit -a --amend -m "..." git push

puede resolver el problema invirtiendo el compromiso modificado:

git reset --mixed origin/master

y luego hacerlo nuevamente como un compromiso completo