Se déplacer dans Git en spécifiant des identifiants de commits (hashes) peut être un peu agaçant. Dans le monde réel vous n'aurez pas forcément une vue sur un arbre des commits à côté de votre terminal, ainsi vous aurez à utiliser gitk ou git log pour connaître les identifiants.

Les 'hashs' sont les identifiants utilisés par git pour identifier chaque commit. Ils sont généralement beaucoup plus longs dans le vrai monde Git. Par exemple, le hachage pourrait être: 'fed2da64c0efc5293610bdd892f82a58e8cbc5d8'.

Le côté positif est que Git est intelligent avec les identifiants. Vous avez seulement à spécifier les premiers caractères de l'identifiant pout qu'il reconnaisse exactement le commit. Ainsi je peux taper fed2 au lieu de la longue chaîne ci-dessus.

Avec les références relatives vous pouvez commencer par vous placer à un endroit mémorisable (comme la branche bugFix ou HEAD) et travailler depuis là. Les commits relatifs sont puissants, et on va en introduire deux simples ici :


Commande Description
^ Revenir d'un commit en arrière
~n Revenir de plusieurs en arrière avec

Avant checkout

Git avant checkout master^


Regardons l'opérateur chapeau - caret (^). Chaque fois que nous ajoutons cela à un nom de référence, nous disons à Git de trouver le parent du commit spécifié.

Donc dire master^ est équivalent "le premier parent de master".

Nous pouvons aussi utiliser HEAD comme référence relative. Par exemple, pour aller deux commits avant notre position actuelle:
git checkout HEAD^
git checkout HEAD^

ou simplement
git checkout HEAD^^

Après un checkout

Git apres checkout master^


git checkout master^
Facile! On peut voyager dans le temps avec ^

Pour terminer ce niveau, consultez le commit parent de bugFix. Cela détachera HEAD.