Voici 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
Si 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 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.
Exercice
- 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-10
et 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étroviseur
au 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.
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.
0 commentaire