J'ai fait un git commit
mais je ne l'ai pas encore poussé dans le dépôt.
Donc quand je fais git status
, j'obtiens '# Votre branche est en avance sur 'master' ; de 1 commit.
Donc si je veux revenir en arrière sur mon premier commit, puis-je simplement faire :
git reset --hard eb27bf26dd18c5a34e0e82b929e0d74cfcaab316
étant donné que lorsque je fais git log
j'obtiens :
commit eb27bf26dd18c5a34e0e82b929e0d74cfcaab316 Date : Tue Sep 29 11:21:41 2009 -0700commit db0c078d5286b837532ff5e276dcf91885df2296 Date : Tue Sep 22 10:31:37 2009 -0700
En fait, lorsque vous utilisez git reset
, vous devez vous référer au commit sur lequel vous vous réinitialisez ; donc vous voudriez probablement le commit db0c078
.
Une version plus simple serait git reset --hard HEAD^
, pour réinitialiser le commit précédent avant le head actuel ; de cette façon, vous n'avez pas à copier les ID de commit.
Faites attention lorsque vous faites un git reset --hard
, car vous pouvez perdre tous les changements non validés que vous avez. Vous pourriez vouloir vérifier git status
pour vous assurer que votre copie de travail est propre, ou que vous voulez vraiment effacer tous les changements qui sont là.
De plus, au lieu de HEAD, vous pouvez utiliser origin/master
comme référence, comme suggéré par @bdonlan dans les commentaires : git reset --hard origin/master
Si vous n'avez PAS poussé vos changements vers remote.
git reset HEAD~1
Vérifiez si la copie de travail est propre par git status
.
Si vous avez poussé vos modifications à distance.
git revert HEAD
Cette commande va inverser/supprimer le dernier commit/changement et vous pourrez alors pousser
git reset --hard origin/master
pour le remettre à l'endroit où se trouvait l'origine.
Ceci a été posté par @bdonlan dans les commentaires. J'ai ajouté cette réponse pour les personnes qui ne lisent pas les commentaires.