Stash des modifications des fichiers par nom dans Git

Azhar Bashir Khan 6 février 2022
Stash des modifications des fichiers par nom dans Git

Ce didacticiel présentera comment stocker les modifications des fichiers par nom dans Git.

Dans Git, nous pouvons vouloir enregistrer les modifications pendant un certain temps et travailler sur la version des fichiers avant que ces modifications n’aient lieu.

Nous pouvons utiliser la commande git stash push pour stocker les modifications afin de les enregistrer pour une utilisation ultérieure.

Encore une fois, plus tard, nous pouvons utiliser la commande git stash pop pour récupérer ces modifications.

Parfois, nous pouvons souhaiter enregistrer l’entrée de cachette avec un nom pour en faciliter l’utilisation. Nous pouvons souhaiter utiliser le nom de l’entrée de cachette pour la vérifier dans la liste de cachette et utiliser le nom pour récupérer les modifications.

Nous allons maintenant illustrer cela par un exemple.

Utilisation de git stash push pour stocker les modifications de fichiers par nom dans Git

Supposons que nous ayons un fichier nommé sample.txt dans la branche main du référentiel Git. Nous avons peut-être apporté des modifications au fichier localement.

Nous pouvons vérifier l’état du référentiel comme suit.

$ git status
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	new file:   sample.txt

Ainsi, nous pouvons voir que le fichier sample.txt comporte des modifications qui doivent être validées.

Maintenant, nous décidons qu’au lieu de valider ces modifications, nous voudrons peut-être stocker ces modifications avec un nom pour les récupérer facilement plus tard.

La syntaxe de la commande git stash push pour stocker les changements avec un nom est git stash push -m <stash_name>.

Nous allons maintenant ranger les modifications du fichier sample.txt avec un nom comme suit.

$ git stash push -m "my_stash"
Saved working directory and index state On master: my_stash

Nous pouvons voir le nom de cache donné dans la liste de cache.

$ git stash list
stash@{0}: On master: my_stash

Ainsi, dans la liste de cachette, nous pouvons voir l’entrée de cachette avec notre nom de réserve donné, à savoir my_stash.

Nous allons maintenant vérifier à nouveau les modifications de l’arbre de travail, comme suit.

$ git status
On branch main
nothing to commit, working tree clean

Comme nous l’avons fait, Git ne montre aucun nouveau changement.

Si nécessaire, nous pouvons récupérer les modifications du magasin de cachette en utilisant le nom donné à l’entrée de cachette que nous venons de créer.

Nous devons utiliser la commande git stash apply pour récupérer les modifications dans l’arbre de travail.

La syntaxe de la commande git stash apply pour récupérer l’entrée stash par son nom et appliquer les modifications à l’arbre de travail est git stash apply stash^{/<stash_name>}.

Veuillez noter que nous utilisons une expression régulière avec le nom de cachette pour obtenir l’entrée de cachette souhaitée.

Ainsi, nous devons procéder comme suit pour récupérer l’entrée de cachette du nom my_stash.

$ git stash apply stash^{/my_stash}
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	new file:   sample.txt

Nous pouvons maintenant voir les modifications appliquées à l’arbre de travail, que nous avons récupéré de la réserve, comme suit.

$ git status
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	new file:   sample.txt

Contrairement à la commande git stash pop, la commande git stash apply ne supprime pas l’entrée de l’état stocké (c’est-à-dire) de la liste de stockage. Il applique uniquement l’entrée de cache donnée au-dessus de l’état actuel de l’arborescence de travail.

Ainsi, nous pouvons toujours voir l’entrée de cachette dans la liste de cachette.

$ git stash list
stash@{0}: On master: my_stash

Nous pouvons supprimer l’entrée de cachette de la liste de cachette.

Nous devons exécuter la commande comme suit.

$ git stash clear

Attention : veuillez utiliser cette commande avec précaution car elle supprime toutes les entrées de cachette.

Pour supprimer uniquement une entrée spécifique, comme dans notre cas, nous devons procéder comme suit.

$ git stash pop stash@{0}

Ainsi, dans ce cas, l’entrée de cachette sera désormais supprimée de la liste de cachette.

Article connexe - Git Stash

Article connexe - Git Push