Comment vérifier si un dépôt Git a des modifications préparées (staged)

GitGitBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à vérifier si un dépôt Git (référentiel Git) a des modifications préparées (staged). Vous utiliserez la commande git status pour afficher les fichiers préparés et comprendre sa sortie, qui indique l'état actuel de votre dépôt, y compris les fichiers modifiés, préparés et non suivis.

En outre, vous explorerez comment utiliser git diff --cached pour examiner les modifications spécifiques actuellement dans la zone de préparation (staging area), vous permettant de vérifier les différences entre les modifications préparées et non préparées dans votre dépôt.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git/BasicOperationsGroup -.-> git/add("Stage Files") git/BasicOperationsGroup -.-> git/status("Check Status") git/BasicOperationsGroup -.-> git/diff("Compare Changes") subgraph Lab Skills git/add -.-> lab-560089{{"Comment vérifier si un dépôt Git a des modifications préparées (staged)"}} git/status -.-> lab-560089{{"Comment vérifier si un dépôt Git a des modifications préparées (staged)"}} git/diff -.-> lab-560089{{"Comment vérifier si un dépôt Git a des modifications préparées (staged)"}} end

Utiliser git status pour afficher les fichiers préparés (staged)

Dans cette étape, nous allons de nouveau utiliser la commande git status pour voir comment Git suit les modifications après avoir ajouté un fichier.

Tout d'abord, assurez-vous que vous êtes dans le répertoire my-time-machine. Sinon, utilisez la commande cd :

cd ~/project/my-time-machine

Maintenant, créons un nouveau fichier appelé notes.txt et ajoutons-y du contenu :

echo "Ideas for the future" > notes.txt

Cette commande crée le fichier notes.txt avec le texte spécifié.

Ensuite, disons à Git que nous voulons suivre ce nouveau fichier. Nous utilisons pour cela la commande git add :

git add notes.txt

Cette commande ajoute notes.txt à la zone de préparation (staging area). La zone de préparation est comme une salle d'attente pour les modifications avant qu'elles ne soient validées (committed).

Maintenant, vérifions l'état de notre dépôt en utilisant git status :

git status

Vous devriez voir une sortie similaire à celle-ci :

On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   notes.txt

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

Remarquez que la sortie montre maintenant notes.txt sous "Changes to be committed". Cela signifie que le fichier est dans la zone de préparation, prêt à être inclus dans le prochain commit.

Vous pourriez également voir message.txt répertorié sous "Untracked files". C'est parce que nous n'avons pas encore validé les modifications apportées à message.txt dans les étapes précédentes. Git nous montre qu'il y a encore des modifications dans le répertoire de travail qui ne sont pas suivies pour le prochain commit.

Comprendre la sortie de git status est crucial. Elle vous indique l'état actuel de votre dépôt, en montrant quels fichiers ont été modifiés, quels sont préparés pour un commit et quels sont non suivis. Cela vous aide à suivre votre travail et à décider quoi inclure dans votre prochain point de sauvegarde.

Vérifier les modifications avec git diff --cached

Dans cette étape, nous allons apprendre à voir les modifications exactes actuellement dans la zone de préparation (staging area) en utilisant la commande git diff --cached.

Rappelez-vous que dans l'étape précédente, nous avons ajouté notes.txt à la zone de préparation. Maintenant, voyons quelles modifications Git est prêt à valider (commit).

Assurez-vous que vous êtes dans le répertoire ~/project/my-time-machine :

cd ~/project/my-time-machine

Maintenant, exécutez la commande suivante :

git diff --cached

Vous devriez voir une sortie similaire à celle-ci :

diff --git a/notes.txt b/notes.txt
new file mode 100644
index 0000000..a1b2c3d
--- /dev/null
+++ b/notes.txt
@@ -0,0 +1 @@
+Ideas for the future

Cette sortie vous montre la différence entre la zone de préparation et le dernier commit. Comme c'est la première fois que nous préparons notes.txt, Git le montre comme un nouveau fichier.

Décortiquons la sortie :

  • diff --git a/notes.txt b/notes.txt : Cette ligne indique que nous comparons deux versions du fichier notes.txt.
  • new file mode 100644 : Cela montre que notes.txt est un nouveau fichier.
  • index 0000000..a1b2c3d : Ce sont des identifiants internes de Git pour le contenu du fichier.
  • --- /dev/null : Cela représente l'état "vide" avant l'ajout du fichier.
  • +++ b/notes.txt : Cela représente l'état actuel du fichier dans la zone de préparation.
  • @@ -0,0 +1 @@ : C'est un en-tête indiquant les lignes qui ont été modifiées. -0,0 signifie qu'aucune ligne n'était présente dans l'état original (vide), et +1 signifie qu'une ligne a été ajoutée dans le nouvel état.
  • +Ideas for the future : Le signe plus + indique que cette ligne a été ajoutée.

La commande git diff --cached est incroyablement utile pour passer en revue vos modifications préparées avant de les valider. Elle vous permet de vérifier exactement ce que vous êtes sur le point de sauvegarder dans l'historique de votre projet. Cela vous aide à éviter de valider accidentellement des modifications indésirables.

Appuyez sur q pour quitter la vue des différences et revenir à la ligne de commande.

Vérifier les différences entre les modifications préparées (staged) et non préparées

Dans cette étape, nous allons approfondir la différence entre les modifications préparées (staged) et non préparées en modifiant un fichier déjà suivi par Git.

Tout d'abord, assurez-vous que vous êtes dans le répertoire ~/project/my-time-machine :

cd ~/project/my-time-machine

Maintenant, ajoutons une autre ligne à notre fichier notes.txt. Nous pouvons utiliser la commande echo avec >> pour ajouter du texte à un fichier existant :

echo "Another idea" >> notes.txt

Cette commande ajoute la ligne "Another idea" à la fin de notes.txt.

Vérifions à nouveau l'état de notre dépôt :

git status

Vous devriez voir une sortie similaire à celle-ci :

On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   notes.txt

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   notes.txt

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

Remarquez que notes.txt apparaît maintenant dans deux sections :

  1. Changes to be committed : Cela fait référence à la version de notes.txt que nous avons ajoutée à la zone de préparation à l'étape précédente (qui ne contenait que "Ideas for the future").
  2. Changes not staged for commit : Cela fait référence aux modifications que nous venons d'apporter à notes.txt (l'ajout de "Another idea"). Ces modifications se trouvent dans notre répertoire de travail mais n'ont pas encore été ajoutées à la zone de préparation.

Ceci est un concept clé dans Git : la zone de préparation contient un instantané des modifications prêtes pour le prochain commit, tandis que le répertoire de travail contient l'état actuel de vos fichiers, y compris les modifications qui n'ont pas encore été préparées.

Pour voir la différence entre le répertoire de travail et la zone de préparation, vous pouvez utiliser la commande git diff sans options :

git diff

Cela vous montrera les modifications qui ne sont pas préparées. Vous devriez voir une sortie montrant l'ajout de la ligne "Another idea".

Pour voir la différence entre la zone de préparation et le dernier commit (que nous avons vu à l'étape précédente), vous utilisez git diff --cached.

Comprendre la différence entre les modifications préparées et non préparées, et savoir comment les afficher avec git status et git diff, est fondamental pour utiliser Git efficacement. Cela vous donne un contrôle précis sur ce qui est inclus dans chaque commit.

Résumé

Dans ce laboratoire (lab), nous avons appris à vérifier si un dépôt Git a des modifications préparées (staged). Nous avons commencé par utiliser la commande git status pour afficher l'état actuel du dépôt, y compris les fichiers qui ont été ajoutés à la zone de préparation. Nous avons vu comment git status indique clairement quels fichiers sont "Changes to be committed" (modifications prêtes à être validées).

Ensuite, nous avons exploré la commande git diff --cached pour afficher spécifiquement les différences entre les modifications préparées et le dernier commit. Cela nous a permis de voir les modifications exactes du contenu qui sont prêtes à être validées. Enfin, nous avons renforcé la distinction entre les modifications préparées et non préparées, en comprenant que git status fournit une vue d'ensemble tandis que git diff --cached montre le contenu détaillé des modifications préparées.