Lire git status
La commande la plus utilisée de tout ce parcours ne modifie jamais rien. Apprenez à vraiment la lire.
Dans le guide précédent, git status a affiché un résultat que vous avez survolé rapidement. Il mérite qu'on s'y arrête vraiment, parce que c'est la commande que vous allez taper le plus souvent, de très loin, dans toute votre pratique de Git. Elle a une qualité précieuse : elle ne modifie jamais rien. Vous pouvez la lancer autant de fois que vous voulez, à tout moment, sans aucun risque.
Pourquoi commencer systématiquement par status
Une commande Git ne devine jamais votre intention à partir du contexte : elle applique exactement ce que vous tapez, sur exactement ce qui existe au moment où vous appuyez sur Entrée. Si vous ne savez pas dans quel état se trouve votre projet, vous risquez de préparer ou d'enregistrer quelque chose que vous ne vouliez pas. git status est le réflexe qui évite ça : avant une action importante, on regarde. Après une action importante, on regarde encore, pour confirmer que le résultat correspond à ce qu'on attendait.
L'anatomie du résultat, section par section
Reprenez le résultat obtenu à la fin du guide précédent, dans mon-premier-site. Relancez la commande si besoin : rien n'a changé depuis, le résultat doit être identique.
Prenons chaque ligne dans l'ordre :
- « On branch main » : indique la branche sur laquelle vous vous trouvez actuellement. Vous n'avez qu'une seule branche pour l'instant, la notion prendra tout son sens à partir du guide sur les branches, plus loin dans ce parcours.
- « No commits yet » : confirme qu'aucun historique n'existe encore. Cette ligne disparaîtra dès votre premier commit et sera remplacée par des informations sur votre position dans l'historique.
- « Untracked files » : la partie la plus importante ici. Un fichier « non suivi » est un fichier que Git voit dans le dossier, mais dont il ne surveille pas encore les changements. Concrètement, Git ne vous préviendra pas si vous modifiez ou supprimez ce fichier, tant qu'il reste dans cet état.
- La dernière ligne rappelle qu'aucun fichier n'a encore été préparé pour un commit, et suggère la commande
git add, que vous découvrirez en détail dans le prochain guide.
Les trois familles d'état que git status peut afficher
Vous ne les verrez pas toutes aujourd'hui, puisque rien n'est encore suivi dans ce projet, mais il est utile de les connaître avant de continuer, pour ne pas être surpris dans les prochains guides.
- Non suivi (« Untracked ») : Git connaît l'existence du fichier, mais ne surveille pas encore son contenu. C'est l'état de vos trois fichiers actuellement.
- Modifié, non préparé (« Changes not staged for commit ») : un fichier déjà suivi par Git a été modifié depuis le dernier commit, mais cette modification n'a pas encore été sélectionnée pour le prochain commit.
- Préparé (« Changes to be committed ») : la modification a été explicitement sélectionnée avec
git addet entrera dans le prochain commit si vous en créez un maintenant.
Vous verrez ces trois états apparaître concrètement dans le prochain guide, quand vous utiliserez git add sur un seul de vos deux fichiers modifiés et observerez la différence entre eux dans git status.
Une petite expérience sans conséquence
Pour bien sentir ce que « non suivi » veut dire, faites un test qui ne coûte rien : créez un quatrième fichier vide dans mon-premier-site, par exemple notes.txt, puis relancez git status.
Le nouveau fichier apparaît immédiatement dans la liste, sans qu'aucune commande add n'ait été tapée. Git détecte simplement sa présence dans le dossier. Vous pouvez maintenant supprimer notes.txt, il ne servait qu'à cette démonstration : Git ne le regrettera pas, puisqu'il n'a jamais été suivi.
Prenez l'habitude de lancer git status avant de taper une commande qui modifie l'historique, comme git commit ou git merge. Si le résultat affiché ne correspond pas à ce que vous imaginiez, c'est le bon moment pour s'arrêter et comprendre, avant d'aller plus loin.
Vérifiez que vous avez compris
Vous venez d'ouvrir index.html dans votre éditeur, vous l'avez lu attentivement, mais vous n'avez rien changé et vous avez fermé le fichier sans l'enregistrer. Est-ce que git status va afficher une différence par rapport à avant ?
Non. Git ne surveille pas les fichiers ouverts ou lus, seulement leur contenu réellement enregistré sur le disque. Tant qu'aucun caractère n'a été modifié et sauvegardé, l'état reste rigoureusement identique.