web-dev-qa-db-fra.com

gitx Comment puis-je obtenir que mon 'Détaché HEAD' réintègre le maître

En utilisant Git X et doit avoir tâté royalement sur quelque chose. On dirait qu'il y a quelques jours, j'ai créé une branche appelée detached HEAD et m'y suis engagée. Mon processus normal consiste à valider master, puis à le transmettre à Origin. Mais je ne peux pas pousser detached HEAD.

Mon prochain arrêt m'a baisé. J'ai sélectionné git checkout master - et ma branche detached HEAD a disparu. Pour en revenir à mon projet, tous mes changements des derniers jours ont été effacés.

Y a-t-il un moyen de récupérer ces modifications?

226
Travis

Si checkout master était la dernière chose que vous avez faite, alors l'entrée refogHEAD@{1} contiendra vos commits (sinon utilisez git reflog ou git log -p pour les trouver ). Utilisez git merge HEAD@{1} pour les avancer rapidement dans le maître.

EDIT:

Comme indiqué dans les commentaires, Git Ready a un excellent article à ce sujet.

git reflog et git reflog --all vous donneront les hachages de validation des validations mal placées.

Git Ready: Reflog, Your Safety Net

Source: http://gitready.com/intermediate/2009/02/09/reflog-your-safety-net.html

444
Josh Lee

Si votre HEAD détaché est une avance rapide du maître et que vous voulez juste les commits en amont, vous pouvez

git Push Origin HEAD:master

pousser directement, ou

git checkout master && git merge [ref of HEAD]

le fusionnera dans votre maître local.

80
richo