Comment vérifier si un stash Git a été appliqué

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 stash Git a été appliqué avec succès à votre répertoire de travail. Nous explorerons l'interaction entre la commande git stash et l'état du dépôt, en montrant comment vérifier les modifications appliquées et les distinguer des stashes non appliqués.

Grâce à des étapes pratiques, vous utiliserez git status pour observer l'état de votre répertoire de travail avant et après avoir mis de côté (stash) et appliqué des modifications. Vous utiliserez également git stash list pour gérer et inspecter vos entrées de stash, afin de pouvoir déterminer en toute confiance l'état d'application de votre travail mis de côté.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git(("Git")) -.-> git/DataManagementGroup(["Data Management"]) git/BasicOperationsGroup -.-> git/status("Check Status") git/DataManagementGroup -.-> git/stash("Save Changes Temporarily") git/DataManagementGroup -.-> git/restore("Revert Files") subgraph Lab Skills git/status -.-> lab-560105{{"Comment vérifier si un stash Git a été appliqué"}} git/stash -.-> lab-560105{{"Comment vérifier si un stash Git a été appliqué"}} git/restore -.-> lab-560105{{"Comment vérifier si un stash Git a été appliqué"}} end

Vérifier l'état de Git pour les modifications appliquées

Dans cette étape, nous explorerons comment la commande stash de Git interagit avec le répertoire de travail et comment vérifier l'état de votre dépôt après avoir appliqué un stash.

Tout d'abord, assurons-nous que nous sommes dans le répertoire de notre projet. Ouvrez votre terminal et accédez au répertoire my-time-machine :

cd ~/project/my-time-machine

Maintenant, créons un nouveau fichier et ajoutons-y du contenu pour simuler des modifications non validées (uncommitted changes) :

echo "This is a new feature." > feature.txt
echo "Adding some more content." >> message.txt

Nous avons maintenant créé un nouveau fichier feature.txt et modifié le fichier existant message.txt. Voyons comment Git voit ces modifications en utilisant git status :

git status

Vous devriez voir un résultat indiquant que feature.txt n'est pas suivi (untracked) et que message.txt a été modifié :

On branch master
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:   message.txt

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

no changes added to commit (use "git add" and/or "git commit -a")

Maintenant, mettons de côté (stash) ces modifications. Mettre de côté les modifications est comme ranger temporairement votre travail actuel afin de pouvoir passer à autre chose sans valider des modifications incomplètes.

git stash save "Work in progress"

Vous devriez voir un résultat confirmant que le stash a été enregistré :

Saved working tree and index state On master: Work in progress

Votre répertoire de travail devrait maintenant être propre, comme si vous n'aviez pas effectué ces modifications. Vous pouvez vérifier cela avec git status :

git status

Le résultat devrait montrer un répertoire de travail propre :

On branch master
nothing to commit, working tree clean

Maintenant, appliquons le stash que nous venons de créer. Appliquer un stash ramène les modifications mises de côté dans votre répertoire de travail.

git stash apply

Vous devriez voir un résultat indiquant que les modifications ont été appliquées :

On branch master
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:   message.txt

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

no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/stash@{0} (a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9)

Enfin, vérifions à nouveau l'état de Git (git status) pour voir l'état de notre répertoire de travail après avoir appliqué le stash.

git status

Le résultat devrait montrer que les modifications du stash sont maintenant de retour dans votre répertoire de travail, apparaissant comme des fichiers modifiés et non suivis, tout comme avant de les avoir mises de côté. Cela confirme que git stash apply ramène les modifications sans les préparer (staging) ou les valider (committing) automatiquement.

Exécuter git stash list pour vérifier

Dans cette étape, nous apprendrons à afficher la liste des stashes que nous avons enregistrés en utilisant la commande git stash list. Cette commande est utile pour suivre votre travail temporaire.

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

Dans l'étape précédente, nous avons créé un stash. Voyons-le dans la liste des stashes. Tapez la commande suivante :

git stash list

Vous devriez voir un résultat similaire à celui-ci :

stash@{0}: On master: Work in progress

Ce résultat nous montre que nous avons un stash enregistré. stash@{0} est l'identifiant de ce stash spécifique. Le nombre entre accolades indique sa position dans la liste des stashes (0 étant le plus récent). "On master" nous indique sur quelle branche nous étions lorsque nous avons créé le stash, et "Work in progress" est le message que nous avons fourni lors de l'enregistrement du stash.

Si vous aviez plusieurs stashes, ils seraient listés ici, stash@{0} étant le plus récent, stash@{1} le deuxième plus récent, et ainsi de suite.

La commande git stash list est essentielle pour gérer vos stashes. Elle vous permet de voir quels stashes vous avez à disposition et vous aide à identifier celui que vous souhaitez appliquer ou supprimer.

Comprendre comment lister vos stashes est la première étape pour utiliser efficacement la fonctionnalité de stash pour gérer votre travail en cours.

Tester les stashes non appliqués

Dans cette étape, nous confirmerons que l'application d'un stash ne le supprime pas de la liste des stashes. C'est une différence importante entre git stash apply et git stash pop.

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

Dans les étapes précédentes, nous avons créé un stash puis l'avons appliqué. Vérifions à nouveau la liste des stashes pour voir si le stash est toujours présent.

git stash list

Vous devriez voir le même résultat que précédemment :

stash@{0}: On master: Work in progress

Comme vous pouvez le voir, même après avoir appliqué le stash, il reste dans la liste des stashes. Cela signifie que vous pouvez appliquer le même stash plusieurs fois si nécessaire, bien que ce ne soit pas un flux de travail courant.

Si vous souhaitez appliquer le stash et le supprimer de la liste en même temps, vous utiliserez la commande git stash pop au lieu de git stash apply. pop est comme appliquer les modifications puis supprimer immédiatement le stash.

Démontrons git stash pop. Tout d'abord, assurez-vous que votre répertoire de travail est propre. Comme nous avons appliqué le stash, nous avons des modifications non validées (uncommitted changes). Nous pouvons soit les valider (commit) soit les annuler pour cette démonstration. Annulons-les pour revenir à un état propre.

git restore .

Cette commande annule toutes les modifications dans le répertoire de travail. Maintenant, vérifions l'état :

git status

Le résultat devrait montrer un répertoire de travail propre :

On branch master
nothing to commit, working tree clean

Maintenant, utilisons git stash pop pour appliquer le stash et le supprimer de la liste.

git stash pop

Vous devriez voir un résultat indiquant que le stash a été appliqué puis supprimé :

On branch master
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:   message.txt

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

no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/stash@{0} (a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9)

Enfin, vérifions à nouveau la liste des stashes :

git stash list

Cette fois, vous ne devriez voir aucun résultat, indiquant que la liste des stashes est vide :

Cela confirme que git stash pop supprime le stash après l'avoir appliqué, tandis que git stash apply le laisse dans la liste. Comprendre la différence entre apply et pop est crucial pour gérer efficacement vos stashes.

Résumé

Dans ce laboratoire (lab), nous avons appris à vérifier si un stash Git a été appliqué avec succès au répertoire de travail. Nous avons commencé par créer et stocker (stash) des modifications dans un projet, puis utilisé git status pour observer l'état du répertoire de travail avant et après le stockage (stashing) et l'application. Un répertoire de travail propre après avoir appliqué un stash indique que les modifications ont été restaurées avec succès.

Nous avons également exploré l'utilisation de git stash list pour afficher la liste des stashes disponibles et confirmer qu'un stash est supprimé de la liste après avoir été appliqué à l'aide de git stash apply ou git stash pop. Cela offre un moyen clair de vérifier qu'un stash spécifique n'est plus en attente d'application.