35 votes

Pas actuellement sur n'importe quelle branche + git commit + checkout en dehors de toute branche. Ai-je perdu mes modifications?

Je n'étais actuellement sur aucune branche lorsque j'ai validé mes modifications. Je n'ai pas vraiment remarqué le message et extrait une autre branche.

Comment puis-je récupérer mes modifications? Je ne peux pas fusionner ou commander, car il n'y a pas de branche à partir de laquelle fusionner.

68voto

manojlds Points 96599

Vous pouvez utiliser git reflog pour obtenir le hachage de validation du commit que vous avez fait lorsque vous êtes dans "aucune branche" (une HEAD isolée) et fusionner celle-ci dans la branche dans laquelle vous vous trouvez (maître peut-être).

Quelque chose comme git merge HEAD@{1}

Vous pouvez également git rebase -i et "choisir" le commit que vous voulez dans le reflog.

11voto

Kel Solaar Points 333

J'étais dans un état similaire après avoir commis quelques travaux:

Lilith:Gestionnaire de KelSolaar$ git status

Actuellement pas sur n'importe quelle branche.

J'ai publié un git log pour voir mon dernier commit de hachage:

Lilith:Gestionnaire de KelSolaar$ git log

s'engager 49984303037e970d637161c3154b7fd7d6ae3a43 Auteur: KelSolaar Date: Wed 5 Oct 22:41:31 2011 +0100

Introduce new "QObject" components category and rename existing ones to "Def

J'ai ensuite vérifié ma branche master:

Lilith:Gestionnaire de KelSolaar$ git checkout master

Précédente la position de la TÊTE a été 4998430... Introduire de nouvelles "QObject" composants de la categorie et renommer existant à "par Défaut" et "QWidget".

Passé à la branche "master"

Et j'ai finalement fusionnés à l'aide de la validation de hachage:

Lilith:Gestionnaire de KelSolaar$ git merge 49984303037e970d637161

La mise à jour de 141bc69..4998430

Avance rapide

src/manager/component.py | 2 +-

...

9voto

Max Nanasy Points 1322

git checkout - vous ramènera à la branche précédente:

 Thu Feb 21 12:50 AM /src/test ((08f84f4...)) $ git checkout master

Warning: you are leaving 1 commit behind, not connected to
any of your branches:

  08f84f4 Fix everything

Switched to branch 'master'

Thu Feb 21 12:50 AM /src/test (master) $ git checkout -

HEAD is now at 08f84f4... Fix everything

Thu Feb 21 12:50 AM /src/test ((08f84f4...)) $
 

2voto

CharlesB Points 27070

Votre commit n'est pas parti, vous pouvez récupérer en demandant à git de vous montrer les commits cachés et de les remettre dans une branche temporaire.

Voir cette réponse pour les instructions.

2voto

karmakaze Points 4615

Utilisez "git reflog" pour afficher les hachages de validation des résultats de l’historique de vos commandes git. Vous pouvez alors "git co hash" et lorsque vous avez trouvé le bon, définissez / créez une branche pour cela.

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