Git empêche de pousser après avoir modifié un commit

Habituellement, je cours juste

git add file
git commit
git push

, Mais si je modifie le commettre avant poussant (avec git commit --amend), le prochain push échoue avec

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.

Comment puis-je laisser git pousser les changements sans fusionner les branches? Je n'ai qu'une seule branche (master) et je suis la seule personne à utiliser ce repo alors pourquoi dit-il cela?

Branche Git-a:

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

EDIT: en utilisant gitk HEAD @{u}, je vois que j'ai 2 branches, une avec le commit original et une autre avec le commit modifié.

34
demandé sur kiri 2013-09-03 13:42:23

3 réponses

Cela ne devrait être le cas que si vous modifiez un commit déjà poussé. En général, vous ne devriez jamais le faire car vous modifiez ensuite l'historique publié. Dans votre cas cependant, vous devriez pouvoir vous en sortir avec push -f, qui écrasera le commit distant avec votre révision modifiée.

46
répondu Joey 2014-11-21 13:29:57

Oui, vous ne devriez pas faire cela (pousser un commit, puis le changer et essayer de le pousser à nouveau).

Au lieu de cela, vous pouvez restaurer Git à votre commit précédent sans changer les fichiers, puis créer un nouveau commit:

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

Cela créera un nouveau commit avec les modifications que vous étiez sur le point de modifier.

8
répondu Nils Werner 2016-11-08 09:18:06

Vous avez modifié le commit tiré comme dans

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

Vous pouvez résoudre le problème en rétablissant le commit Modifié:

git reset --mixed origin/master

Et puis en le faisant à nouveau comme un commit à part entière

7
répondu Stefano Falasca 2013-09-03 09:44:28