Habituellement, je cours juste
git add file
git commit
git Push
mais si je modifie le commit avant le 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 laisser git pousser les modifications sans fusionner les branches? Je n'ai qu'une seule branche (master
) et je suis la seule personne à utiliser ce dépôt, alors pourquoi dit-il cela?
git branch -a:
* master
remotes/Origin/HEAD -> Origin/master
remotes/Origin/master
EDIT: à l'aide de gitk HEAD @{u}
, Je vois que j'ai 2 branches, une avec le commit d'origine et l'autre avec le commit modifié.
Cela ne devrait être le cas que si vous modifiez un commit déjà poussé. En règle générale, vous ne devriez jamais faire cela car vous modifiez alors 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.
Oui, vous ne devriez pas faire ça (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 modifier 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 va créer un nouveau commit avec les changements que vous étiez sur le point de modifier.
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 annulant le commit modifié:
git reset --mixed Origin/master
puis le faire à nouveau comme un engagement à part entière