Si l'on veut retirer une succursale:
git checkout 760ac7e
par exemple b9ac70b
, comment peut-on revenir à la dernière tête connue b9ac70b
sans connaître son SHA1?
Si vous vous souvenez quelle branche a été vérifiée avant (par exemple master
), vous pouvez simplement
git checkout master
pour sortir de l' état HEAD détaché .
D'une manière générale: git checkout <branchname>
vous en sortirez.
Si vous ne vous souvenez pas du dernier nom de la branche, essayez
git checkout -
Cela tente également de vérifier votre dernière branche extraite.
git checkout -
- fonction de tueur!git checkout -b new_branch_name
-vous les commits effectués lorsque vous êtes dans l'état HEAD détaché?git gc
sont exécutés, ils sont supprimés pour toujours. Vous pouvez les regardergit reflog
aussi longtemps qu'ils sont encore là.Utilisez
git reflog
pour trouver les hachages des validations précédemment extraites.Une commande de raccourci pour accéder à votre dernière branche extraite (vous ne savez pas si cela fonctionne correctement avec HEAD détaché et les validations intermédiaires) est
git checkout -
la source
J'ai eu ce cas de bord, où j'ai vérifié une version précédente du code dans laquelle la structure de mon répertoire de fichiers était différente:
Dans un cas comme celui-ci, vous devrez peut-être utiliser --force (lorsque vous savez que revenir à la branche d'origine et supprimer les modifications est une chose sûre à faire).
git checkout master
n'a pas marché:git checkout master --force
(ougit checkout master -f
) travaillé:la source
Vous avez peut-être effectué de nouveaux commits dans l'
detached HEAD
état. Je crois que si vous faites comme d'autres réponses le conseillent:alors vous risquez de perdre vos commits !! Au lieu de cela, vous voudrez peut-être faire ceci:
puis fusionnez
commits-from-detached-head
dans la branche que vous voulez, afin de ne pas perdre les commits.la source