Tester avec différents états de dépôt
Dans cette étape, nous allons apporter quelques modifications à notre dépôt pour voir comment git status --porcelain
les signale. Cela vous aidera à comprendre les différents codes utilisés dans la sortie "porcelain".
Tout d'abord, assurez-vous que vous êtes dans le bon répertoire :
cd ~/project/my-time-machine
Maintenant, créons un nouveau fichier non suivi (untracked). Nous l'appellerons notes.txt
:
echo "Some random notes" > notes.txt
Exécutons à nouveau git status --porcelain
:
git status --porcelain
Vous devriez maintenant voir une sortie similaire à celle-ci :
?? notes.txt
Le ??
indique que notes.txt
est un fichier non suivi. Git voit le fichier, mais ne gère pas actuellement ses versions.
Ensuite, modifions le fichier message.txt
que nous avons validé (committed) précédemment. Nous allons y ajouter une autre ligne :
echo "Hello again, Future Me" >> message.txt
L'opérateur >>
ajoute le texte à la fin du fichier existant, au lieu de l'écraser.
Maintenant, exécutons git status --porcelain
une fois de plus :
git status --porcelain
Vous devriez voir une sortie similaire à celle-ci :
M message.txt
?? notes.txt
Le M
indique que message.txt
a été modifié. L'espace avant le M
signifie que la modification se trouve dans le répertoire de travail mais n'a pas encore été mise en attente (staged). Le ??
pour notes.txt
reste car le fichier est toujours non suivi.
Enfin, mettons en attente le fichier message.txt
modifié en utilisant git add
:
git add message.txt
Et exécutons git status --porcelain
une dernière fois :
git status --porcelain
La sortie devrait maintenant ressembler à ceci :
M message.txt
?? notes.txt
Le M
se trouve maintenant dans la première colonne, indiquant que message.txt
a été mis en attente pour un commit. L'espace dans la deuxième colonne signifie qu'il n'y a pas de modifications supplémentaires dans le répertoire de travail depuis qu'il a été mis en attente. notes.txt
est toujours non suivi.
Comprendre ces codes (??
pour les fichiers non suivis, M
dans la deuxième colonne pour les fichiers modifiés mais non mis en attente, M
dans la première colonne pour les modifications mises en attente) est essentiel pour interpréter rapidement la sortie de git status --porcelain
.