logo

Git | Travailler avec Stash

Pré-requis : Git

Git permet à plusieurs utilisateurs de travailler simultanément sur le même projet. Supposons qu'un développeur travaille sur une fonctionnalité dans une branche et qu'il doive extraire des modifications de la branche d'un autre développeur ou s'il doit travailler de toute urgence sur une autre fonctionnalité, mais que la fonctionnalité sur laquelle il travaille actuellement est incomplète. Dans ce cas, vous ne pouvez pas valider le code partiel de la fonctionnalité actuellement opérationnelle. Pour ajouter cette nouvelle fonctionnalité, vous devez supprimer vos modifications actuelles et les stocker ailleurs. Pour ce type de situation, Git propose une commande très utile appelée « git cachette '. git cachette La commande enregistre le code précédemment écrit, puis revient au dernier commit pour un nouveau départ. Vous pouvez désormais ajouter la nouvelle fonctionnalité sans perturber l'ancienne car elle est enregistrée localement. Après vous être engagé dans la nouvelle fonctionnalité, vous pouvez continuer à travailler sur l'ancienne fonctionnalité qui était incomplète et non validée.



Cache Git et Git Commit

Il existe deux manières alternatives d'enregistrer les modifications dans le référentiel git : stocker et valider.

Cache Git : La commande Git stash peut être utilisée pour y parvenir si un développeur travaille sur un projet et souhaite conserver les modifications sans les valider. Cela lui permettra de changer de branche et de travailler sur d'autres projets sans affecter les modifications existantes. Vous pouvez annuler les modifications chaque fois que nécessaire, et il stocke l'état actuel et ramène les développeurs à un état antérieur.

Validation Git : Les développeurs souhaitent stocker de manière permanente leurs modifications apportées au code source dans l'historique du référentiel. Le git commit La commande peut être utilisée pour accomplir cela. Git crée un nouveau commit qui documente vos modifications et les ajoute à l'historique du référentiel.



Pour résumer. Git valide en permanence les modifications apportées à l'historique du référentiel, tandis que le cache Git est utilisé pour effectuer une sauvegarde des fichiers sur lesquels nous travaillons mais qui ne sont pas encore prêts à être validés.

Git Stash contre Git Réinitialiser

Les deux commandes peuvent être combinées pour gérer les modifications apportées à un référentiel Git et avoir différents cas d'utilisation.

Git reset et Git stash Avec ces deux commandes, nous pouvons restaurer tous les fichiers précédemment supprimés et sauvegardés dans le répertoire de travail actuel. Ces deux distinctions principales sont les suivantes :



Cache Git

Réinitialisation de Git

Le cache Git est utilisé pour enregistrer les fichiers qui ont été modifiés et qui ne sont pas prêts à être validés.

Git reset peut annuler complètement les modifications et modifier le pointeur de branche vers le nouveau commit

Les développeurs peuvent changer de branche et travailler sur d'autres tâches sans affecter les modifications actuelles.

Les modifications déjà apportées sont ignorées par la réinitialisation de Git.

Git Stash et Git Stage

La mise en scène est utilisée pour préparer les modifications pour la validation ultérieure, tandis que le cache Git est utilisé pour effectuer une sauvegarde des fichiers qui ont été modifiés mais qui ne sont pas encore prêts à être validés. Les deux commandes peuvent être combinées pour gérer les modifications apportées à un référentiel Git et avoir divers cas d'utilisation.

Cache Git Étape Git
Le cache Git est utilisé pour effectuer la sauvegarde des fichiers Les fichiers sont ajoutés à l'index git à l'aide de l'étape git.

Git stash est utilisé si vous devez passer à une autre tâche ou branche tout en travaillant sur une fonctionnalité ou une correction de bogue.

Les modifications des étapes Git doivent être incluses dans la validation suivante lorsque vous utilisez la commande git add.

Quel dossier stocke l’historique Git Stash ?

Lorsque nous utilisons git stash, les données seront stockées sous forme de caches dans notre référentiel local. Par défaut, les données seront stockées dans le fichier git/refs/stash. Dans ce fichier, toutes les références sont stockées et les données réelles sont stockées dans le répertoire .git/objects, tout comme les autres objets Git.

chaîne en c

La commande ci-dessous est utilisée pour répertorier toutes les cachettes qui ont été créées.

git stash list>

Comment stocker les modifications dans Git ?

Pour enregistrer les modifications non validées pour une utilisation ultérieure, vous pouvez utiliser le 'git cachette' commande. Cette commande enregistre vos modifications locales et rétablit le répertoire de travail pour qu'il corresponde à la validation HEAD afin qu'il vous donne un répertoire de travail propre.

Voici quelques options importantes qui sont les plus largement utilisées :

    Git stash Git stash save Git stash list Git stash apply Git stash changes Git stash pop Git stash drop Git stash clear Git stash branch

Cacher votre travail (Git Stash)

git stash>
statut git

Par défaut, en cours d'exécution git cachette stockera les modifications qui ont été ajoutées à votre index (modifications planifiées) et les modifications apportées aux fichiers actuellement suivis par Git (modifications non planifiées). Pour cacher vos fichiers non suivis, utilisez git cachette -u .

Gestion de plusieurs caches (Git Stash List)

Vous pouvez créer plusieurs cachettes et les afficher à l'aide de l'outil 'liste de cachette git' commande. Chaque entrée de cache est répertoriée avec son nom (par ex. cachette@{1} ), le nom de la branche qui était en cours au moment où l'entrée a été effectuée et une brève description du commit sur lequel l'entrée était basée.

git stash list>
liste de cachette git

Pour fournir plus de contexte au cache, nous créons le cache à l'aide de la commande suivante :

git stash save 'message'>

Que sont Git Stash Apply et POP (Git Stash Apply & POP)

Vous pouvez réappliquer les modifications précédemment cachées avec le 'git cachette pop' ou 'git stash appliquer' commandes. La seule différence entre les deux commandes est que 'git cachette pop' supprime les modifications de la réserve et réapplique les modifications dans la copie de travail tout en 'git stash appliquer' réapplique uniquement les modifications dans la copie de travail sans supprimer les modifications de la réserve. En mots simples, populaire supprime l'état de la liste de dissimulation tandis que appliquer ne supprime pas l'état de la liste de dissimulation. À l’aide de la commande suivante, nous pouvons réappliquer les modifications stockées. Le cache le plus récent sera appliqué à notre répertoire de travail et sera également extrait de la liste des caches.

git stash pop>
git cachette pop
git stash apply>
git stash appliquer

Par défaut 'git cachette pop' ou 'git stash appliquer' réappliquera le cache le plus récemment créé : stash@{0} Pour choisir le cache à appliquer, vous pouvez transmettre l'identifiant comme dernier argument ( Par ex. :- git stash pop stash@{2}).

Spectacle Git Stash

spectacle de cachette git La commande permet d'afficher le résumé des opérations effectuées sur la cachette.

git stash show>
spectacle de cachette git

Créer une branche à partir de votre réserve (branche Git Stash)

Si vous souhaitez créer et extraire une nouvelle branche à partir de la validation à laquelle le cache a été initialement créé et appliquer les modifications enregistrées dans le cache, utilisez 'git stash branch branch_name stash_name' . Il supprime le cache qui est donné comme argument et si aucun cache n'est donné, il supprime le dernier.

git stash branch newbranch stash@{0}>
branche de cachette git

Nettoyer votre réserve (Git Stash Clear)

Pour supprimer une réserve particulière ( Par exemple : – stash@{1}), utilisez 'git stash drop stash@{1}' . Par défaut, cette commande sera supprimée cachette@{0} si aucun argument n'est fourni ( git cachette drop ). Pour supprimer toutes les cachettes en même temps, utilisez le 'git cachette claire' commande.

Git Stash Effacer

La commande git stash nous permet de conserver les modifications non validées afin que nous puissions les utiliser selon nos besoins à l'avenir. Lorsque nous utilisons la commande git stash, les fichiers sont automatiquement sauvegardés. Cela nous permet de changer de branche, d'effectuer nos tâches, puis de récupérer facilement les fichiers lorsque nous sommes prêts à y travailler à nouveau.

Cachette Git

Cacher des fichiers non suivis ou ignorés

Nous pouvons utiliser la commande git stash pour cacher les fichiers qui sont des fichiers non suivis ou ignorés. En suivant les étapes ci-dessous, nous pouvons cacher nos fichiers :

Étape 1: Cachez les modifications pour cela à l’aide de la commande ci-dessous.

git stash save --include-untracked>

–include-untracked Grâce à cela, tous les fichiers non suivis seront également cachés.

Étape 2: Vérifiez la réserve :

Utilisez la commande ci-dessous pour confirmer que la cache a été créée :

git stash list>

Étape 3: En utilisant la commande suivante, nous pouvons ramener et appliquer la cachette.

git stash apply stash@{0}>

Étape 4: Une fois le rétablissement de la réserve terminé, s'il n'est pas désiré, nous pouvons supprimer la réserve en utilisant la commande suivante.

git stash drop stash@{0}>

Meilleures pratiques Git Stash

Voici quelques bonnes pratiques pour utiliser le Cachette Git commande.

  1. N'abusez pas de git stash : Git stash doit être utilisé modérément chaque fois qu'il est très important de travailler sur une autre tâche, alors seulement nous devrions utiliser git stash, cela affectera les modifications qui doivent être apportées lors de la validation.
  2. Évitez les messages inutiles : En utilisant git stash, vous pouvez ajouter un message pour décrire les modifications que vous cachez. Donnez du sens au message. Lorsque vous aurez besoin de vous rappeler plus tard du contenu de la réserve, cela vous sera utile. Utilisez des déclarations informatives et évocatrices et qui reflètent avec précision les changements dissimulés.
  3. Employer des succursales : Stashing est un outil utile lorsque vous travaillez avec des branches Git. Avant de stocker les modifications, créez une nouvelle branche afin de pouvoir passer à différentes tâches ou branches sans affecter vos modifications actuelles. Revenez à la branche et appliquez le cache lorsque vous êtes prêt à travailler à nouveau sur les modifications.
  4. Les changements doivent être apportés le plus rapidement possible : le stockage ne doit être utilisé que comme solution temporaire. Une fois que vous avez terminé d'apporter un ensemble de modifications, vous devez les valider dans le référentiel pour conserver une trace des modifications.