GitVoici le sixième volet de la formation Git. Dans mon précédent article, nous avons vu en détail les états successifs d’un fichier par rapport à Git. Vous commencez petit à petit à vous familiariser avec le flux de travail spécifique à Git. Aujourd’hui nous allons aborder un outil fort pratique qui nous permettra à chaque instant de savoir où nous en sommes exactement lorsque nous travaillons avec Git : la commande git status.

Un peu de pratique

Créez un répertoire formation-git/atelier-09 et initialisez un dépôt Git dans ce répertoire :

$ cd ~/formation-git
$ mkdir atelier-09
$ cd atelier-09/
$ git init
...
Initialized empty Git repository in /home/kikinovak/formation-git/atelier-09/.git/

Pour l’instant nous n’avons rien fait. Faisons quand-même un premier état des lieux :

$ git status
On branch master

No commits yet

nothing to commit (create/copy files and use "git add" to track)
  • Pas grand-chose à signaler pour l’instant (No commits yet).
  • Notez que Git nous fait quand-même une petite suggestion pour la suite.

Cette fois-ci, j’utilise Git pour planifier un petit road trip en moto, et je vais créer deux fichiers Roadtrip.md et Entretien.md. Voici le fichier Roadtrip.md :

# Roadtrip en moto

- Orpierre

- Briançon

- Chiavenna

- Innsbruck

Et voici le fichier Entretien.md :

# Entretien moto

- [ ] Vidange

- [ ] Filtre à huile

- [ ] Pneu avant

AstuceSi vous avez la flemme de recopier ces petits fichiers texte, vous pouvez très bien effectuer un copier/coller. Dans l’éditeur Vim, utilisez la commande :set paste avant d’insérer le texte. Cette astuce vous permettra de conserver le formatage du texte original.

Voyons où nous en sommes :

$ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        Entretien.md
        Roadtrip.md

nothing added to commit but untracked files present (use "git add" to track)
  • Ici, Git m’informe que mon répertoire de travail contient deux fichiers non suivis (Untracked).
  • L’index est vide puisque nous n’avons rien ajouté pour l’instant.
  • La base de données d’objets est également vide, puisque nous n’avons pas encore effectué de commit.

À présent, nous allons soumettre un de nos deux fichiers à Git :

$ git add Roadtrip.md

Voyons ce que ça donne :

$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file: Roadtrip.md

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        Entretien.md
  • Le fichier Roadtrip.md est dorénavant suivi par Git. Il est également indexé.
  • Si nous validons en l’état, seul le fichier Roadtrip.md sera inclus dans le commit.

Effectuons donc ce commit sans oublier le petit message qui va bien, et affichons le résultat :

$ git commit -m "Ajout du fichier Roadtrip."
[master (root-commit) f00df8b] Ajout du fichier Roadtrip.
1 file changed, 9 insertions(+)
create mode 100644 Roadtrip.md
$ git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        Entretien.md

nothing added to commit but untracked files present (use "git add" to track)
  • Git a pris le contenu de l’index et l’a ajouté à la base de données d’objets.
  • Notez la petite suite de caractères f00df8b qui identifie l’enregistrement.

Le fichier Entretien.md n’est toujours pas suivi. On va donc l’ajouter à l’index :

$ git add Entretien.md
$ git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file: Entretien.md

Maintenant que Entretien.md est dans l’index, validons-le à son tour :

$ git commit -m "Ajout du fichier Entretien."
[master 2c06935] Ajout du fichier Entretien.
1 file changed, 7 insertions(+)
create mode 100644 Entretien.md
  • Nous venons d’effectuer notre deuxième commit dans la base de données d’objets.
  • Cette fois-ci, l’enregistrement a été identifié avec la petite suite de caractères 2c06935.

Un peu d’histoire

Vous vous rappelez peut-être que lorsque j’ai présenté Git, je vous ai dit qu’un logiciel de gestion de versions servait à enregistrer l’historique d’un projet. C’est précisément ce que nous venons de faire :

  • Nous avons enregistré un premier commit f00df8b qui n’a pas de parent.
  • Notre deuxième commit 2c06935 est le fils du commit f00df8b.
  • Si nous faisions un troisième commit, il aurait pour parent le commit 2c06935.
  • Les commits s’enchaînent ainsi comme un collier de perles ou une guirlande de noël.

Exercice

  1. Rappelez-vous (mentalement ou sur un bout de papier) les différents états d’un fichier par rapport à Git.
  2. Créez un répertoire formation-git/atelier-10 et initialisez un dépôt Git dans ce répertoire.
  3. Refaites l’atelier pratique ci-dessus en identifiant l’état successif de chaque fichier.
  4. Ajoutez la ligne - [ ] Réparer le rétroviseur au fichier Entretien.md.
  5. Que constatez-vous ?
  6. Essayez d’intégrer cette modification sous forme d’un troisième commit avec un message approprié.
  7. Là aussi, identifiez l’état successif des fichiers par rapport à Git.

Lire la suite : Les idées fusent


La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.

 

Catégories : Formation

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *