DY

DelahayeYourself

modules / S2105 /

TP01: Premier contact avec Git

Nous allons nous intéresser à l'aspect gestion de versions de Git: Comment enregistrer l'historique des modifications apportées à un projet.

Pour obtenir un dépôt Git sur lequel travailler, deux options sont possibles:

Nous nous intéresserons à la deuxième option qui fait partie de la vie courante d'un développeur.

Git a plusieurs interfaces utilisateur, la plus complète étant l'interface en ligne de commande (CLI) nous nous servirons de celle-ci.

Création d'un compte sur Gitlab

Tout d'abord il convient de créer un compte sur Gitlab, ce compte servira pour vos rendu de projets pensez donc à créer un compte professionnel.

Notre premier repository

  1. Créer un premier repository HelloWorld via l'interface en ligne de Gitlab
  2. Cloner ce repository sur votre ordinateur via la commande clone
  3. Quel commande utiliser pour afficher le statut de ce dépôt ?
Création du fichier README.md

Attention à partir de maintenant nous n'utiliserons l'interface web de gitlab uniquement pour constater les changements de données sur notre dépot distant. Lorsqu'il vous est demandé de créer des fichiers, il convient de le faire sur votre machine via un éditeur de code.

Un fichier readme (en français, lisezmoi) est un fichier contenant des informations sur les autres fichiers du même répertoire. L'extension .md indique qu'il s'agit d'un fichier formaté en Markdown.

# HelloWorld

### About

A simple repo for learning git

### Author

Insert your name here
Add et Commit

Pour intégrée dans l'historique des révisions du dépôt (pour être « committée »), chaque modification doit suivre le workflow suivant:

  1. La modification est d'abord effectuée sur la copie de travail;
  2. Elle est ensuite mémorisée dans une aire temporaire nommée index avec la commande git add;
  3. Enfin ce qui a été placé dans l'index peut être «committé» avec la commande git commit
Diagramme UML du Workflow d'une modification avec Git
Diagramme UML du Workflow d'une modification avec Git
  1. Vérifiez avec git status l’état dans lequel se trouve votre dépôt. Vos modifications (l’ajout du fichier README.md) devraient être présentes seulement dans la copie de travail.
  2. Préparez README.md pour le commit avec git add README.md.
  3. Utilisez git status à nouveau pour vérifier que les modifications ont bien été placées dans l’index.
  4. Commitez votre modification avec git commit -m "<votre_message_de_commit>". Le message entre double quotes décrira la nature de votre modification (généralement ≤ 65 caractères).
  5. Exécutez à nouveau git status, pour vérifier que vos modifications ont bien été commités.
  6. Essayez à présent la commande git log pour afficher la liste des changements effectués dans ce dépôt ; combien y en a-t-il ? Quel est le numéro (un hash cryptographique en format SHA1) du dernier commit effectué ?
Publication (push)

Vos modifications sont prises en compte dans votre dépôt local, toutefois via la commande git status vous pouvez remarquer que le commit n'est pas publié sur le dépôt distant.

Diagramme UML du Workflow d'une modification avec Git
Diagramme UML du Workflow d'une modification avec Git

Une histoire de sandwich

Burger

Dans note repository nous allons créer un répertoire sandwich qui contiendra le fichier burger.txt.

Le fichier burger.txt contient la liste des ingrédients d'un burger, un ingrédient par ligne.

steak
salade
tomate
cornichon
fromage
  1. Comment vérifier que ce fichier n'est pas versionné ?
  2. Comment l'ajouter à l'index ?
  3. Comment le «committer» ?
  4. Comment publier ce commit ?
Autres sandwichs

Créez quelques autres sandwichs hot_dog.txt, jambon_beurre.txt, .. et/ou modifiez les compositions déjà créés, en committant chaque modification séparément.

Chaque commit doit contenir une et une seule création ou modification de fichier. Effectuez au moins 5 modifications différentes (et donc 5 commits différents).

À chaque étape essayez les commandes suivantes :

Regardez maintenant l'historique des modifications avec git log et vérifiez avec git status que vous avez tout commité.

Voyage dans le temps
  1. Vous voulez changer d’avis entre les différents états de la Figure sur l'état des modifications ? Faites une modification d’un ou plusieurs sandwichs, ajoutez-la à l’index avec git add (vérifiez cet ajout avec git status), mais ne la commitez pas. Exécutez git reset sur le nom de fichier (ou les noms de fichiers) que vous avez préparés pour le commit ; vérifiez avec git status le résultat.
  2. Votre modification a été « retirée » de l’index. Vous pouvez maintenant la jeter à la poubelle avec la commande git checkout sur le ou les noms des fichiers modifiés, qui récupère dans l’historique leurs versions correspondant au tout dernier commit. Essayez cette commande, et vérifiez avec git status qu’il n’y a maintenant plus aucune modification à commiter.
  3. Regardez l’historique de votre dépôt avec git log; choisissez dans la liste un commit (autre que le dernier). Exécutez git checkout COMMITIDCOMMITID est le numéro de commit que vous avez choisi. Vérifiez que l’état de vos sandwichs est maintenant revenu en arrière, au moment du commit choisi. Que dit maintenant git status ?
  4. Vous pouvez retourner à la version plus récente de votre dépôt avec git checkout master. Vérifiez que cela est bien le cas. Que dit maintenant git status ?