DevOpsFacile
AccueilParcours de formationCertificationsModulesCheat SheetÀ Propos
DevOpsFacile

Une plateforme d'apprentissage complète pour maîtriser les pratiques DevOps modernes, du débutant à l'expert.

contact@devopsfacile.fr

Formation

  • Parcours de formation
  • Modules

Informations

  • À Propos
  • Conditions d'utilisation
  • Confidentialité
  • Mentions légales

© 2026 DevOps Facile. Tous droits réservés.

Fait avec pour la communauté DevOps

ModulesCollaborer efficacement avec Git et GitHub03 - Mettre du travail en attente avec git stash

Détails

  • 15 minutes
  • Intermédiaire

Objectifs

  • Sauvegarder des modifications non committées avec git stash
  • Gérer plusieurs stashs simultanément
  • Appliquer un stash sur une branche différente
Module Collaborer efficacement avec Git et GitHub

Exercice 03 : Mettre du travail en attente avec git stash

🎯 Objectifs

À la fin de cet exercice, vous serez capable de :

  • ✅ Mettre de côté des modifications avec git stash
  • ✅ Lister, inspecter et restaurer des stashs
  • ✅ Nommer un stash pour le retrouver facilement
  • ✅ Transférer du travail d'une branche à une autre via stash

Durée estimée : 15 minutes | Difficulté : ⭐⭐⭐☆☆


📖 Contexte

Vous travaillez sur une fonctionnalité quand votre chef vous demande de corriger un bug urgent sur main. Vous n'êtes pas prêt à committer votre travail en cours. git stash est la solution : il sauvegarde vos modifications dans une pile temporaire et nettoie votre working directory.

C'est une commande du quotidien pour tout développeur qui jongle entre plusieurs tâches.


📋 Énoncé

Vous avez un repository git-intermediaire-tp. Vous allez simuler plusieurs scénarios de stash : interruption urgente, stash nommé, et transfert de travail entre branches.


🧭 Déroulement

Tâche 1 : Stasher des modifications en cours

Sur la branche main, modifiez README.md sans committer. Imaginez qu'un bug urgent arrive. Stashez vos modifications, vérifiez que le working directory est propre, puis restaurez-les.

Indice : git stash sauvegarde les fichiers trackés modifiés et les fichiers en staging. git stash pop restaure le dernier stash ET le supprime de la pile. git stash apply restaure SANS supprimer.

Vérification : Après git stash, git status affiche "nothing to commit". Après git stash pop, vos modifications sont de retour.


Tâche 2 : Créer plusieurs stashs avec des messages

Faites deux séries de modifications distinctes sur deux fichiers différents, en stashant chacune avec un message descriptif. Listez les stashs disponibles.

Indice : git stash push -m "message descriptif" nomme le stash. git stash list affiche tous les stashs avec leur index (stash@{0}, stash@{1}...).

Vérification : git stash list affiche deux entrées avec vos messages.


Tâche 3 : Inspecter et appliquer un stash spécifique

Sans restaurer dans l'ordre, appliquez uniquement le stash le plus ancien (pas le dernier). Inspectez son contenu avant de l'appliquer.

Indice : git stash show stash@{1} affiche les fichiers modifiés. git stash show -p stash@{1} affiche le diff complet. git stash apply stash@{1} applique un stash spécifique.

Vérification : Les modifications du stash ciblé sont restaurées. git stash list montre que ce stash existe encore.


Tâche 4 : Supprimer des stashs

Supprimez le stash que vous venez d'appliquer (il n'est plus utile). Puis videz entièrement la pile de stashs.

Indice : git stash drop stash@{N} supprime un stash précis. git stash clear supprime TOUS les stashs en une commande - attention, c'est irréversible.

Vérification : git stash list ne retourne rien.


Tâche 5 : Transférer du travail vers une autre branche

Commencez à éditer un fichier sur main, réalisez que vous auriez dû être sur feature/experiment. Stashez, changez de branche, et appliquez le stash.

Indice : Stashez d'abord, puis git checkout feature/experiment (ou git switch). Si la branche n'existe pas : git checkout -b feature/experiment. Ensuite git stash pop.

Vérification : Vos modifications sont présentes sur feature/experiment et absentes de main.


🗂️ Mini-Projet

bash
# Stash simple
git stash                              # sauvegarder le travail en cours
git stash pop                          # restaurer + supprimer de la pile

# Stash nommé
git stash push -m "wip: refactor auth"
git stash list                         # voir tous les stashs

# Inspecter avant d'appliquer
git stash show -p stash@{1}
git stash apply stash@{1}

# Nettoyer
git stash drop stash@{0}
git stash clear                        # vider toute la pile

# Transfert entre branches
git stash
git checkout -b feature/experiment
git stash pop

Checkpoints :

  • git stash nettoie le working directory
  • git stash list affiche plusieurs stashs nommés
  • Un stash spécifique est appliqué via stash@{N}
  • Le travail est transféré de main vers feature/experiment

Retour au module

Sur cette page

  • 🎯 Objectifs
  • 📖 Contexte
  • 📋 Énoncé
  • 🧭 Déroulement
  • Tâche 1 : Stasher des modifications en cours
  • Tâche 2 : Créer plusieurs stashs avec des messages
  • Tâche 3 : Inspecter et appliquer un stash spécifique
  • Tâche 4 : Supprimer des stashs
  • Tâche 5 : Transférer du travail vers une autre branche
  • 🗂️ Mini-Projet