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 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?
Réponses:
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 -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 regarder git reflog
aussi longtemps qu'ils sont encore là.
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:
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 branches 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 <new-branch-name>
HEAD is now at 50a7153d7... Merge branch 'hotfix/1.87.1'
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
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
) travaillé:
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'.
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:
git checkout master
# or
git checkout -
alors vous risquez de perdre vos commits !! Au lieu de cela, vous voudrez peut-être faire ceci:
# you are currently in detached HEAD state
git checkout -b commits-from-detached-head
puis fusionnez commits-from-detached-head
dans la branche que vous voulez, afin de ne pas perdre les commits.
git checkout -
- fonction de tueur!