147 votes

Comment annuler un checkout dans git ?

Je viens de vérifier un commit antérieur de mon dépôt git local. Je ne l'ai pas modifié, je l'ai juste regardé. Maintenant je veux revenir à mon dernier commit - comment faire ?

La commande exacte que j'ai utilisée pour le vérifier :

git checkout e5dff6b3c5d704f9b598de46551355d18235ac08

Maintenant quand je tape git log, en haut je vois ce commit vérifié, mais aucun de mes commits ultérieurs. Est-ce que je les ai accidentellement supprimés ?

0 votes

Je pense que vous voyez les choses de la mauvaise façon : nous vérifions les branches (têtes), pas les commits individuellement.

204voto

Amber Points 159296

Essayez d'abord ça :

git checkout master

(Si vous êtes sur une branche différente de celle de la master utilisez le nom de la branche à la place).

Si ça ne marche pas, essayez...

Pour un seul fichier :

git checkout HEAD /path/to/file

Pour l'ensemble de la copie de travail du référentiel :

git reset --hard HEAD

Et si cela ne fonctionne pas, vous pouvez regarder dans le reflog pour trouver votre ancienne tête SHA et la réinitialiser :

git reflog
git reset --hard <sha from reflog>

HEAD est un nom qui pointe toujours vers le dernier commit de votre branche actuelle.

0 votes

Mais comment puis-je visualiser mes commits pour décider du hachage SHA1 à lui donner ?

1 votes

Vous ne le faites pas - vous tapez HEAD , mot à mot. Git sait déjà ce que HEAD moyens. Cependant, si vous vouliez vraiment, vraiment, lui donner un SHA1 à la place, vous pourriez utiliser git log pour regarder le journal de livraison.

0 votes

Quand je cours git reset --hard HEAD cela me ramène à ce commit vérifié... Je vais poster la commande exacte que j'ai utilisée pour le vérifier.

78voto

Pour annuler git checkout faire git checkout - de la même manière que pour cd et cd - dans la coquille.

16voto

wuputah Points 8189

Vous voulez probablement git checkout master ou git checkout [branchname] .

3voto

Ng Ju Ping Points 51

Si vous utilisez github, il y a de fortes chances que le nom de la branche par défaut ne soit plus master . Essayez git checkout main à la place.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X