Skip to content

Activité - Initiation à git

  • Découvrir git
  • Connaître les commandes de base Git
  • git init, git add, git commit, git reset, git checkout

(dépôt = repository en anglais. On dit souvent “répo” en français)

Git permet de gérer l’historique des modifications apportées à un projet.

Pour utiliser Git dans un projet, deux options sont possibles :

  • La création d’un nouveau dépôt (quand on commence un nouveau projet)
  • La copie (clone) d’un dépôt existant (quand on collabore avec d’autres développeurs)

Dans le répertoire du projet, lancez la commande:

Terminal window
git init

Cette commande crée un répertoire .git à l’intérieur du projet.

Ce répertoire .git va contenir l’historique des modifications du projet.

  • Créer un répertoire bagages puis se placer dans ce répertoire

  • Lancer la commande git init

  • Créer le fichier mavalise.txt

  • Copier / Coller le texte suivant dans ce fichier:

    vêtements
    mp3
    eau
    chapeau
    crème solaire
  • Entrer la commande git status

  • Passer à l’étape suivante

img

  1. Pour qu’un fichier soit pris en compte par Git, il faut l’ajouter avec la commande:

    Terminal window
    git add

    Remarque: Lorsque l’on ajoute un fichier à git, on parle de l’ajouter à l’index. On dit aussi que le fichier est dans la zone de staging (mis en scène)

    • On pourra ajouter un fichier avec git add chemin/vers/mon/fichier.php
    • On pourra ajouter tous les fichiers avec git add *
    • On pourra ajouter un répertoire avec git add mon_repertoire
  2. Pour qu’une modification soit prise en compte, il faut effectuer un «commit» avec la commande:

    Terminal window
    git commit
    • Avec l’option -m on pourra ajouter un message à notre commit. Par exemple:

      Terminal window
      git commit -m "J’ai réparé le bug que j’avais moi-même créé"
  • Vérifiez l’état de votre dépôt avec git status.
  • Vos modifications (l’ajout du fichier mavalise.txt) devraient être présentes seulement dans la copie de travail (pas dans l’index de Git)
  • Préparer mavalise.txt pour le commit avec git add mavalise.txt. (Maintenant le fichier est dans l’index)
  • Utilisez git status à nouveau pour vérifier que les modifications ont bien été placées dans l’index.
  • Puis, utilisez git diff --cached pour observer les différences entre l’index est la dernière version présent dans l’historique de révision (qui est vide).
  • “Commitez” votre modification avec git commit -m "<votre_message_de_commit>"
  • Exécutez à nouveau git status, pour vérifier que vos modifications ont bien été “commitées”.
  • 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é ?
  • Créez quelques autres fichier monsac.txt, masacoche.txt, etc
  • Modifiez le contenu de vos fichiers et effectuer des commits pour 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 :
    • git diff avant git add pour observer ce que vous allez ajouter à l’index ;
    • git diff --cached après git add pour observer ce que vous allez commit.
  • Remarque : la commande git commit a le même effet que git add suivie de git commit.
  • Regardez à nouveau l’historique des modifications avec git log
  • Vérifiez avec git status que vous avez bien commit tous vos fichiers.

Remarque: Il existe de nombreuses interfaces graphiques pour gérer les dépôt Git. Cependant, ces interfaces graphiques ne font qu’utiliser les commandes. Il est utile de maîtriser Git en ligne de commande.

On veut parfois “revenir” en arrière après avoir effectué un git add, si par exemple on a détecté une erreur. Pour cela on utilisera git reset

img

  • Faire une modification d’un ou plusieurs fichiers puis les ajouter à l’index avec git add

  • Vérifiez cet ajout avec git status

  • Ne faites pas de commit

  • Exécutez git reset sur le ou les noms de fichier que vous aviez ajouter avec git add

  • Vérifiez le résultat avec git status

  • Votre modification a été « retirée » de l’index.

  • Vous pouvez maintenant la supprimer avec git checkout <lenomdufichier>

  • git checkout récupère la version du fichier avant modification

  • Vérifiez avec git status qu’il n’y a maintenant plus aucune modification à commiter.

    git checkout est une commande très puissante. Elle vous permet de voyager entre différentes branches (vous verrez ça plus tard) et aussi de revenir temporairement à une version précédente de votre copie de travail.

  • 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 COMMITID où COMMITID est le numéro de commit que vous avez choisi. Vérifiez que l’état de vos bagages est maintenant revenu en arrière, au moment du commit choisi.

  • Que dit maintenant git status ?

    git log n’affiche plus les commits postérieurs à l’état actuel, sauf si vous ajoutez l’option --all.

    Attention, avec git checkout les fichiers de votre copie de travail sont modifiés directement par Git pour les remettre dans l’état que vous avez demandé. Si les fichiers modifiés sont ouverts par d’autres programmes (e.g. un éditeur de texte comme Emacs), il faudra les réouvrir pour observer les modifications.

  • 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?