lab 12 Obtenir de vieille versions
Buts
- Apprendre comment récupérer n’importe quelle état du dépôt dans le répertoire
de travail.
Retourner dans l’historique est très facile. La commande checkout va copier n’importe quel état depuis le dépôt vers le répertoire de travail.
Obtenir les hashs pour les précédentes versions 01
Execute:
git hist
Note: Vous vous rappelez avoir défini hist
dans votre fichier .gitconfig
, n’est ce pas? Si ce n’est pas le cas, revoyez le tutoriel sur les alias.
Output:
$ git hist * a9c6007 2014-02-21 | Ajout d'un commentaire (HEAD, master) [Jim Weirich] * 221243e 2014-02-21 | Ajouter une valeur par défaut [Jim Weirich] * 80fc666 2014-02-21 | Using ARGV [Jim Weirich] * 834ca4f 2014-02-21 | Mon premier commit [Jim Weirich]
Examiner la sortie du log et trouver le hash pour le premier commit. Cela doit être la dernière ligne de la sortie de git hist
. Utiliser le code hash (les 7 premiers caractères sont suffisants) dans la commande ci-dessous. Ensuite, vérifier le contenu du fichier bonjour.rb.
Execute:
git checkout <hash> cat bonjour.rb
Note: Les commandes données ici sont des commandes Unix et fonctionnent à la fois sous Mac et Linux. Malheureusement, les utilisateurs Windows devront traduire pour leur ligne de commande propre (DOS).
Note: De nombreuses commandes dépendent des valeurs de hash dans le dépôt. Comme vos valeurs de hash vont changer des miennes, chaque fois que vous voyez quelque chose comme <hash> ou <treehash> dans la commande, remplacer la valeur par votre propre valeur de dépôt.
Vous devriez voir …
Output:
$ git checkout 834ca4f Note: checking out '834ca4f'. 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 834ca4f... Mon premier commit $ cat bonjour.rb puts "Bonjour, Monde"
La sortie de la commande checkout
explique la situation de manière assez claire. Les vieilles versions de git vont se plaindre de ne pas être sur une branche locale. Dans tous les cas, ne vous en inquiétez pas maintenant.
Noter que les contenus du fichier bonjour.rb sont les contenus originaux.
Retourner la dernière version de la branche master 02
Execute:
git checkout master cat bonjour.rb
Vous devriez voir …
Output:
$ git checkout master Previous HEAD position was 834ca4f... Mon premier commit Switched to branch 'master' $ cat bonjour.rb # Default is "Monde" name = ARGV.first || "Monde" puts "Bonjour, #{name}!"
‘master’ est le nom de la branche par défaut. En faisant un “checkout” sur une branche, vous avez la dernière version de cette branche.