Comment vérifier si un fichier est ajouté à la zone de préparation dans Git

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 fichier a été ajouté à la zone de préparation (staging area) dans Git. Nous allons explorer la commande git status pour voir l'état de votre dépôt (repository) et identifier les fichiers ajoutés à la zone de préparation. Vous utiliserez ensuite git diff --cached pour vérifier les modifications spécifiques qui se trouvent actuellement dans la zone de préparation, ce qui vous donnera une vue claire de ce qui sera inclus dans votre prochain commit. Enfin, vous effectuerez des tests avec des fichiers non ajoutés à la zone de préparation pour consolider votre compréhension du processus de préparation.


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-560031{{"Comment vérifier si un fichier est ajouté à la zone de préparation dans Git"}} git/status -.-> lab-560031{{"Comment vérifier si un fichier est ajouté à la zone de préparation dans Git"}} git/diff -.-> lab-560031{{"Comment vérifier si un fichier est ajouté à la zone de préparation dans Git"}} end

Vérifier l'état (status) de Git pour les fichiers ajoutés à la zone de préparation

Dans cette étape, nous allons vérifier l'état de notre dépôt Git après avoir ajouté un fichier à la zone de préparation (staging area). Cela nous aidera à comprendre comment Git suit les modifications avant qu'elles ne soient validées (committed).

Tout d'abord, assurez-vous que vous êtes dans le répertoire my-time-machine. Vous pouvez utiliser la commande cd pour vous y rendre :

cd ~/project/my-time-machine

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

echo "Plan 1: Build a bigger time machine" > future_plans.txt

Cette commande crée le fichier et écrit le texte "Plan 1: Build a bigger time machine" dedans.

Ensuite, nous allons ajouter ce nouveau fichier à la zone de préparation en utilisant la commande git add :

git add future_plans.txt

N'oubliez pas que git add ajoute les modifications à la zone de préparation, les préparant pour le prochain commit. Cela ne crée pas le commit lui-même pour l'instant.

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:   future_plans.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        message.txt ## Ce fichier est déjà validé (committed), mais la commande git status le montre différemment après un commit. Ne vous en inquiétez pas pour l'instant.

Remarquez la section "Changes to be committed:" (Modifications à valider). Cela indique que future_plans.txt se trouve maintenant dans la zone de préparation, prêt à être inclus dans le prochain commit. Git le reconnaît comme un "nouveau fichier".

Comprendre la zone de préparation est crucial dans Git. Elle vous permet de regrouper les modifications connexes avant de faire un commit. Cela signifie que vous pouvez travailler sur plusieurs choses, mais ne valider que des modifications spécifiques lorsque vous êtes prêt.

Utiliser git diff --cached pour vérifier

Dans cette étape, nous allons apprendre à voir les modifications qui se trouvent actuellement dans la zone de préparation (staging area). C'est là que la commande git diff s'avère utile, en particulier avec l'option --cached.

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

Nous avons précédemment ajouté future_plans.txt à la zone de préparation. Maintenant, utilisons git diff --cached pour voir exactement quelles modifications sont prêtes à être validées (staged) :

git diff --cached

Vous devriez voir une sortie similaire à celle-ci :

diff --git a/future_plans.txt b/future_plans.txt
new file mode 100644
index 0000000..a1b2c3d
--- /dev/null
+++ b/future_plans.txt
@@ -0,0 +1 @@
+Plan 1: Build a bigger time machine

Décortiquons cette sortie :

  • diff --git a/future_plans.txt b/future_plans.txt : Cette ligne indique que Git montre la différence entre deux versions du fichier future_plans.txt.
  • new file mode 100644 : Cela montre que future_plans.txt est un nouveau fichier.
  • index 0000000..a1b2c3d : Ce sont des identifiants internes de Git pour le contenu du fichier.
  • --- /dev/null et +++ b/future_plans.txt : Ces lignes indiquent que le fichier est comparé depuis rien (/dev/null) jusqu'à la nouvelle version de future_plans.txt.
  • @@ -0,0 +1 @@ : C'est un en-tête de bloc (hunk header) indiquant les lignes qui ont été modifiées. -0,0 signifie zéro ligne dans le fichier d'origine (inexistant), et +1 signifie une ligne dans le nouveau fichier.
  • +Plan 1: Build a bigger time machine : Le signe + au début de la ligne indique que cette ligne a été ajoutée.

La commande git diff --cached vous montre la différence entre la zone de préparation et le dernier commit. Étant donné que nous n'avons pas encore effectué de commits dans ce dépôt (sauf le commit initial dans le laboratoire précédent), elle montre la différence entre la zone de préparation et un état vide.

Cette commande est incroyablement utile pour passer en revue vos modifications prêtes à être validées avant de les commiter. Elle vous aide à vous assurer que vous ne validez que les modifications que vous souhaitez.

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

Tester les fichiers non ajoutés à la zone de préparation

Dans cette étape, nous allons explorer comment Git gère les modifications apportées à un fichier suivi (tracked) mais qui n'ont pas encore été ajoutées à la zone de préparation (staging area). Ces modifications sont appelées des modifications "non ajoutées à la zone de préparation" (unstaged).

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

Nous avons précédemment créé et ajouté future_plans.txt à la zone de préparation. Maintenant, ajoutons une autre ligne à ce fichier sans ajouter la modification à la zone de préparation :

echo "Plan 2: Invent a self-folding laundry machine" >> future_plans.txt

L'opérateur >> ajoute le texte au fichier existant, plutôt que de le remplacer.

Maintenant, 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:   future_plans.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:   future_plans.txt

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

Remarquez la nouvelle section : "Changes not staged for commit:" (Modifications non ajoutées à la zone de préparation pour le commit). Cela nous indique que Git détecte des modifications dans future_plans.txt qui diffèrent de la version présente dans la zone de préparation. Le fichier est répertorié comme "modifié" (modified).

Ceci est un concept clé dans Git : le répertoire de travail (où vous effectuez les modifications) est séparé de la zone de préparation. Vous pouvez avoir des modifications dans votre répertoire de travail qui ne sont pas encore ajoutées à la zone de préparation.

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

git diff

Vous devriez voir une sortie similaire à celle-ci :

diff --git a/future_plans.txt b/future_plans.txt
index a1b2c3d..e4f5g6h 100644
--- a/future_plans.txt
+++ b/future_plans.txt
@@ -1 +1,2 @@
 Plan 1: Build a bigger time machine
+Plan 2: Invent a self-folding laundry machine

Cette sortie montre la différence entre la version de future_plans.txt dans la zone de préparation (qui ne contient que "Plan 1") et la version dans votre répertoire de travail (qui contient maintenant à la fois "Plan 1" et "Plan 2"). Le signe + indique à nouveau la ligne ajoutée.

Comprendre la différence entre les modifications ajoutées à la zone de préparation et celles non ajoutées, ainsi que comment les visualiser avec git status et git diff, est fondamental pour utiliser Git efficacement.

Appuyez sur q pour quitter la vue des différences.

Résumé

Dans ce laboratoire, nous avons appris à vérifier si un fichier est ajouté à la zone de préparation (staged) dans Git. Nous avons commencé par créer un nouveau fichier et l'ajouter à la zone de préparation en utilisant git add. Nous avons ensuite utilisé git status pour constater que le fichier était répertorié sous "Changes to be committed" (Modifications à valider), confirmant qu'il était ajouté à la zone de préparation.

Nous avons également exploré l'utilisation de git diff --cached pour afficher les modifications spécifiques qui se trouvent actuellement dans la zone de préparation, offrant un aperçu détaillé de ce qui sera inclus dans le prochain commit. Enfin, nous avons testé le comportement de git status avec des fichiers non ajoutés à la zone de préparation pour différencier les modifications ajoutées à la zone de préparation des modifications non ajoutées.