Comment appliquer un stash Git spécifique

GitBeginner
Pratiquer maintenant

Introduction

Git stash est une fonctionnalité puissante qui permet aux développeurs de sauvegarder temporairement leurs modifications locales sans les valider (commit). Dans ce tutoriel, nous allons vous guider tout au long du processus d'application d'un stash Git spécifique, vous aidant ainsi à gérer efficacement votre flux de travail de développement et à maintenir une base de code propre.

Comprendre les bases de Git Stash

Git Stash est une fonctionnalité puissante de Git qui vous permet de sauvegarder temporairement vos modifications locales sans les valider (commit). Cela est particulièrement utile lorsque vous avez besoin de basculer sur une autre branche ou de tirer (pull) les dernières modifications depuis un dépôt distant, mais que vous ne voulez pas perdre le travail que vous avez effectué sur votre branche actuelle.

Qu'est-ce que Git Stash ?

Git Stash est un moyen de sauvegarder temporairement vos modifications locales, y compris les modifications préparées (staged) et non préparées (unstaged), dans un "stash" que vous pourrez appliquer ou supprimer ultérieurement. Cela vous permet de basculer sur une autre branche, de tirer les dernières modifications ou d'effectuer d'autres opérations Git sans perdre votre travail en cours.

Quand utiliser Git Stash ?

Vous pouvez utiliser Git Stash dans les scénarios suivants :

  • Vous travaillez sur une fonctionnalité et avez besoin de basculer sur une autre branche pour corriger un bogue ou fusionner une demande d'extraction (pull request).
  • Vous souhaitez tirer les dernières modifications depuis un dépôt distant, mais ne voulez pas encore valider vos modifications locales.
  • Vous avez effectué des modifications expérimentales que vous souhaitez sauvegarder pour plus tard, mais ne voulez pas les valider sur la branche principale.

Comment utiliser Git Stash ?

Pour utiliser Git Stash, vous pouvez suivre ces étapes :

  1. Assurez-vous que votre répertoire de travail est propre (aucun fichier non suivi ou modifié).
  2. Exécutez la commande git stash pour sauvegarder vos modifications actuelles dans le stash.
  3. Basculez sur la branche souhaitée ou effectuez d'autres opérations Git.
  4. Lorsque vous êtes prêt à appliquer les modifications sauvegardées dans le stash, exécutez git stash apply pour appliquer le stash le plus récent, ou git stash apply stash@{n} pour appliquer un stash spécifique, où n est l'index du stash que vous souhaitez appliquer.
## Save current changes to the stash
git stash

## Switch to a different branch
git checkout feature/new-functionality

## Apply the most recent stash
git stash apply

## Apply a specific stash
git stash apply stash@{2}

Visualiser Git Stash

Vous pouvez visualiser le processus de Git Stash à l'aide d'un diagramme Mermaid :

graph TD A[Working Directory] --> B[Stash] B --> C[Working Directory] B --> D[Branch]

Ce diagramme montre comment la fonctionnalité Git Stash vous permet de sauvegarder temporairement vos modifications locales dans le stash, de basculer sur une autre branche, puis d'appliquer ultérieurement les modifications sauvegardées dans votre répertoire de travail.

Appliquer un stash Git spécifique

Bien que la commande git stash apply soit utile pour appliquer le stash le plus récent, il peut arriver que vous ayez besoin d'appliquer un stash spécifique de votre liste de stashes. Cela peut être particulièrement utile lorsque vous avez plusieurs stashes et que vous devez les appliquer de manière sélective.

Lister les stashes disponibles

Pour afficher la liste des stashes disponibles, vous pouvez utiliser la commande git stash list :

git stash list

Cela affichera une liste de tous les stashes que vous avez sauvegardés, ainsi que leur index et une description des modifications qu'ils contiennent.

Appliquer un stash spécifique

Pour appliquer un stash spécifique, vous pouvez utiliser la commande git stash apply suivie de la référence du stash. La référence du stash est au format stash@{n}, où n est l'index du stash que vous souhaitez appliquer.

## Apply the stash at index 2
git stash apply stash@{2}

Si vous souhaitez appliquer un stash puis le supprimer de la liste des stashes, vous pouvez utiliser la commande git stash pop à la place :

## Apply and remove the stash at index 2
git stash pop stash@{2}

Visualiser l'application d'un stash

Vous pouvez visualiser le processus d'application d'un stash spécifique à l'aide d'un diagramme Mermaid :

graph TD A[Stash List] --> B[Stash@{2}] B --> C[Working Directory]

Ce diagramme montre comment vous pouvez sélectionner un stash spécifique dans la liste des stashes (dans ce cas, Stash@{2}) et l'appliquer à votre répertoire de travail.

Techniques de gestion des stashes

En plus d'appliquer des stashes spécifiques, vous pouvez également utiliser les commandes suivantes pour gérer votre liste de stashes :

  • git stash clear : Supprimer tous les stashes de la liste des stashes.
  • git stash drop stash@{n} : Supprimer un stash spécifique de la liste des stashes.
  • git stash show stash@{n} : Afficher les modifications contenues dans un stash spécifique.

En maîtrisant ces techniques, vous pouvez gérer efficacement vos stashes Git et les appliquer selon vos besoins pour rationaliser votre flux de travail de développement.

Techniques avancées de Git Stash

Bien que les commandes de base de Git Stash soient puissantes, il existe également des techniques avancées qui peuvent vous aider à mieux gérer et utiliser vos stashes. Ces techniques peuvent être particulièrement utiles pour des flux de travail de développement plus complexes.

Stocker (stash) avec un message

Lorsque vous créez un stash, vous pouvez lui ajouter un message pour vous aider à vous souvenir des modifications incluses. Cela peut être particulièrement utile lorsque vous avez plusieurs stashes et que vous avez besoin d'identifier rapidement le but de chacun d'eux.

## Stash changes with a message
git stash save "Implement new feature"

Stocker les fichiers non suivis

Par défaut, la commande git stash ne sauvegarde que les fichiers suivis (les fichiers déjà sous le contrôle de version de Git). Si vous souhaitez inclure les fichiers non suivis dans votre stash, vous pouvez utiliser l'option -u ou --include-untracked :

## Stash changes including untracked files
git stash -u

Stocker des fichiers ou des répertoires spécifiques

Si vous ne souhaitez stocker que des fichiers ou des répertoires spécifiques, vous pouvez les fournir en tant qu'arguments à la commande git stash :

## Stash changes in a specific directory
git stash save "Stash changes in src directory" src/

Appliquer des stashes sur une autre branche

Parfois, vous pouvez souhaiter appliquer un stash sur une autre branche que celle sur laquelle vous étiez lorsque vous avez créé le stash. Vous pouvez le faire en utilisant la commande git stash branch :

## Apply a stash to a different branch
git stash branch feature/new-functionality

Cette commande créera une nouvelle branche, l'activera (check out) et appliquera ensuite le stash le plus récent sur la nouvelle branche.

Visualiser les techniques avancées de stash

Vous pouvez utiliser des diagrammes Mermaid pour visualiser certaines des techniques avancées de Git Stash :

graph TD A[Working Directory] --> B[Stash] B --> C[Branch A] B --> D[Branch B]

Ce diagramme montre comment vous pouvez appliquer des stashes sur différentes branches, vous permettant de basculer facilement entre votre travail sur différentes fonctionnalités ou corrections de bogues.

En maîtrisant ces techniques avancées de Git Stash, vous pouvez rationaliser votre flux de travail de développement et mieux gérer votre base de code, même dans des scénarios complexes.

Résumé

À la fin de ce tutoriel, vous aurez une compréhension complète de la manière d'appliquer un stash Git spécifique, ainsi que d'explorer des techniques avancées pour gérer vos modifications sauvegardées dans les stashes. Maîtriser ces compétences vous permettra de rationaliser votre processus de développement basé sur Git et de maintenir une base de code plus organisée et plus efficace.