Je fais mon projet et, à un moment donné, j'ai découvert qu'une chose avait cessé de fonctionner. Je devais consulter l'état de mon code lorsqu'il fonctionnait correctement. J'ai donc décidé d'utiliser git checkout (parce que je voulais extraire quelque chose). Et j'ai donc fait
git checkout SHA
plusieurs fois en revenant au point où je ne peux pas aller à HEAD, la sortie est la suivante:
git checkout SHA-HEAD
error: Your local changes to the following files would be overwritten by checkout:
[list of files]
Please, commit your changes or stash them before you can switch branches.
Aborting
Je suis à peu près sûr que je n'ai rien changé. La commande
git checkout master
donne le même résultat.
Est-il possible de retourner à HEAD?
Quel est le moyen sûr de "sauter par-dessus" l'histoire commet?
Vous pouvez stash
(enregistrer les modifications dans la boîte temporaire) puis revenir à master
branche HEAD.
$ git add .
$ git stash
$ git checkout master
saute les commits en arrière:
Aller à un commit-sha
.
$ git checkout <commit-sha>
Si vous avez des modifications non validées ici, vous pouvez extraire une nouvelle branche, Ajouter, Valider, Pousser la branche actuelle vers la télécommande.
# checkout a new branch, add, commit, Push
$ git checkout -b <branch-name>
$ git add .
$ git commit -m 'Changes in the commit'
$ git Push Origin HEAD # Push the current branch to remote
$ git checkout master # back to master branch now
Si vous avez des modifications dans le commit spécifique et que vous ne voulez pas les conserver, vous pouvez faire stash
ou reset
puis passer à master
(ou toute autre branche). .
# stash
$ git add -A
$ git stash
$ git checkout master
# reset
$ git reset --hard HEAD
$ git checkout master
Après avoir extrait un commit spécifique si vous n'avez pas de modification non validée, revenez à la branche master
ou other
.
$ git status # see the changes
$ git checkout master
# or, shortcut
$ git checkout - # back to the previous state