Comment annuler un paiement dans git?

134

Je viens de vérifier un commit précédent de mon dépôt git local. Je n'y ai apporté aucun changement, 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 extrait, mais aucun de mes derniers commits. Est-ce que je les ai supprimés accidentellement?

Yuval Karmi
la source
Je pense que vous voyez les choses de la mauvaise façon: nous vérifions dans les succursales (chefs), pas dans les engagements individuels
Z. Khullah

Réponses:

183

Essayez d'abord ceci:

git checkout master

(Si vous êtes sur une branche différente de celle master, utilisez plutôt le nom de la branche.)

Si cela ne fonctionne pas, essayez ...

Pour un seul fichier:

git checkout HEAD /path/to/file

Pour l'intégralité 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 réinitialiser à cela:

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

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

ambre
la source
mais comment afficher mes commits pour décider quel hachage SHA1 lui donner?
Yuval Karmi
1
Vous ne - vous tapez HEAD, textuellement. Git sait déjà ce que cela HEADsignifie. Cependant, si vous voulez vraiment, vraiment lui donner un SHA1 à la place, vous pouvez utiliser git logpour consulter le journal de validation.
Ambre
quand je l'exécute, git reset --hard HEADcela me ramène à ce commit extrait ... je posterai la commande exacte que j'ai utilisée pour le vérifier.
Yuval Karmi
(Si vous êtes curieux, vous pouvez taper git rev-parse HEADet voir que cela vous donne un SHA1 correspondant à votre dernier commit.)
Ambre
J'ai ajouté deux nouvelles options ci-dessus, essayez-les (dans l'ordre - essayez d'abord la version de paiement).
Ambre
56

Pour annuler le git checkoutfaire git checkout -, de façon similaire à cdet cd -dans la coquille.

Gaylord Thankyou Johnson
la source
16

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

wuputah
la source