Git: Comment revenir de l’état “détaché HEAD”

Si l’on vérifiait une succursale:

git checkout 760ac7e

par exemple, b9ac70b , comment revenir à la dernière tête connue b9ac70b sans connaître son SHA1?

Si vous vous rappelez quelle twig a été extraite avant (par exemple, master ), vous pouvez simplement

 git checkout master 

sortir de l’état HEAD détaché .

En règle générale: git checkout va vous sortir de là.

Si vous ne vous souvenez pas du nom de la dernière twig, essayez

 git checkout - 

Cela tente également de vérifier votre dernière succursale extraite.

Utilisez git reflog pour trouver les hachages des git reflog .

Une commande de raccourci pour accéder à votre dernière twig extraite (vous ne savez pas si cela fonctionne correctement avec les validations HEAD et intermédiaires) est git checkout -

J’ai eu cette affaire de bord, où j’ai vérifié une version précédente du code dans lequel ma structure de répertoire de fichiers était différente:

 git checkout 1.87.1 warning: unable to unlink web/sites/default/default.settings.php: Permission denied ... other warnings ... Note: checking out '1.87.1'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any twigs by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b  HEAD is now at 50a7153d7... Merge branch 'hotfix/1.87.1' 

Dans un cas comme celui-ci, vous devrez peut-être utiliser –force (quand vous savez que revenir à la twig d’origine et ignorer les modifications est une chose sûre à faire).

git checkout master n’a pas fonctionné:

 $ git checkout master error: The following untracked working tree files would be overwritten by checkout: web/sites/default/default.settings.php ... other files ... 

git checkout master --force (ou git checkout master -f ) a fonctionné:

 git checkout master -f Previous HEAD position was 50a7153d7... Merge branch 'hotfix/1.87.1' Switched to branch 'master' Your branch is up-to-date with 'origin/master'.