Consulter un commit spécifique avec Git Checkout
Une autre fonctionnalité conservée par git checkout
est la possibilité de consulter (checkout) un commit spécifique. Cela vous place dans un état "HEAD détaché" (detached HEAD), vous permettant d'inspecter le projet à ce moment précis de l'historique. git switch
n'a pas cette capacité.
Tout d'abord, trouvons le hachage (hash) du commit initial.
Assurez-vous d'être dans le répertoire du projet :
cd ~/project
Affichez l'historique des commits :
git log --oneline
Vous verrez une sortie similaire à celle-ci, avec les hachages de commit :
<commit_hash_development> (HEAD -> development) Initial commit
<commit_hash_main> (main, feature-branch) Initial commit
Notez que les hachages de commit seront différents dans votre environnement. Copiez le hachage de commit pour le "Initial commit".
Maintenant, utilisez git checkout
suivi du hachage de commit pour consulter ce commit spécifique. Remplacez <commit_hash>
par le hachage réel que vous avez copié.
git checkout <commit_hash>
Vous verrez une sortie indiquant que vous êtes dans un état HEAD détaché :
Note: switching to '<commit_hash>'
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 switching back to a branch.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:
git switch -c <new-branch-name>
HEAD is now at <commit_hash> Initial commit
Vous visualisez maintenant le projet tel qu'il était au moment du commit initial. Pour revenir à une branche, vous pouvez utiliser git switch
ou git checkout
pour revenir à une branche comme development
ou main
.
Revenons à la branche development
en utilisant git switch
:
git switch development
Vous verrez une sortie confirmant le changement :
Switched to branch 'development'
Vous avez utilisé avec succès git checkout
pour explorer un commit spécifique, puis vous êtes revenu à une branche en utilisant git switch
.