État des lieux
Nous avons vu en détail les états successifs d'un fichier par rapport à Git.
Vous commencez petit à petit à vous familiariser avec le workflow spécifique
à Git. Dans cet atelier pratique, 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 .../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 au passage 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 :
Et voici le fichier Entretien.md :
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 :
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.mdest dorénavant suivi par Git. Il est également indexé. -
Si nous validons en l'état, seul le fichier
Roadtrip.mdsera 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
f00df8bqui 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
f00df8bqui n'a pas de parent. -
Notre deuxième commit
2c06935est le fils du commitf00df8b. -
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.
À vous de jouer !
-
Rappelez-vous (mentalement ou sur un bout de papier) les différents états d'un fichier par rapport à Git.
-
Créez un répertoire
formation-git/atelier-10et initialisez un dépôt Git dans ce répertoire. -
Refaites l'atelier pratique ci-dessus en identifiant l'état successif de chaque fichier.
-
Ajoutez la ligne
- [ ] Réparer le rétroviseurau fichierEntretien.md. -
Que constatez-vous ?
-
Essayez d'intégrer cette modification sous forme d'un troisième commit avec un message approprié.
-
Là aussi, identifiez l'état successif des fichiers par rapport à Git.
