19. Cachetage : enregistrement temporaire des modifications
Le développement de logiciels est un processus dynamique et les développeurs doivent souvent gérer différentes tâches en même temps. Au cours de ce processus, il peut être nécessaire de basculer entre les branches sans vouloir engager un travail en cours qui n'est pas encore prêt à l'être. C'est là que le concept de Stashing dans Git devient extrêmement utile.
Qu'est-ce que le stashing ?
git stash
est une commande puissante qui permet aux développeurs d'enregistrer temporairement leurs modifications locales dans une zone que Git appelle « stash ». Ces modifications peuvent être soit des modifications apportées aux fichiers analysés, soit de nouveaux fichiers qui n'ont pas encore été ajoutés à l'index (stadés). La réserve est une pile, ce qui signifie que vous pouvez avoir plusieurs réserves et les gérer sous forme de liste.
Quand utiliser le stashing ?
Le stockage est particulièrement utile lorsque :
- Vous êtes en plein travail et vous devez changer rapidement de contexte, comme corriger un bug critique dans une autre branche.
- Vous souhaitez essayer quelque chose dans votre code sans créer de validation pour ces modifications.
- Vous devez nettoyer votre répertoire de travail pour extraire les modifications en amont sans valider vos propres modifications.
Comment stocker les modifications
Pour créer une nouvelle réserve, vous pouvez simplement exécuter :
git stash
Cela enregistrera vos modifications et nettoiera le répertoire de travail. Si vous souhaitez inclure des modifications dans des fichiers qui n'ont pas encore été suivis par Git (fichiers non suivis), vous pouvez utiliser :
git stash -u
Ou, pour inclure également les fichiers ignorés :
git stash -a
Si vous souhaitez donner à votre réserve un nom spécifique pour mémoriser le contexte des modifications, vous pouvez utiliser :
git stash save "message explicatif"
Répertorier et inspecter les caches
Pour voir toutes les réserves que vous avez créées, utilisez :
liste de cachette git
Chaque entrée de la liste aura un identifiant unique sous la forme de stash@{
où
est un nombre indiquant la position du cacher dans la pile .
Pour voir le contenu d'une réserve spécifique sans l'appliquer, vous pouvez utiliser :
git stash show -p stash@{}
Appliquer une réserve
Lorsque vous êtes prêt à continuer à travailler sur les modifications que vous avez enregistrées, vous pouvez appliquer la dernière réserve avec :
git stash apply
Ou un spécifique avec :
git stash apply stash@{}
Cela réapplique les modifications enregistrées dans votre répertoire de travail, mais conserve la réserve sur la pile. Si vous souhaitez appliquer et supprimer le stockage de la pile, vous pouvez utiliser :
git stash pop
Gérer les conflits
Lorsque vous appliquez une réserve, des conflits peuvent survenir si votre répertoire de travail actuel comporte des modifications qui chevauchent les modifications de la réserve. Dans ce cas, Git vous alertera des conflits et vous devrez les résoudre manuellement, comme vous le feriez pour une fusion.
Supprimer une réserve
Si vous souhaitez supprimer une réserve dont vous savez que vous n'aurez plus besoin, vous pouvez en supprimer une spécifique avec :
git stash drop stash@{}
Ou, pour effacer toutes les réserves :
git stash clear
Branches et cachettes
Parfois, il peut être utile de cacher une nouvelle branche. Cela peut être fait avec :
branche git stash stash@{}
Cela crée une nouvelle branche à partir du commit où le cache a été créé, applique le cache et, en cas de succès, supprime le cache de la pile.
Bonnes pratiques en matière de cachetage
- Utilisez des messages descriptifs lors de l'enregistrement des réserves afin de les rendre plus faciles à identifier à l'avenir.
- Évitez d'accumuler trop de réserves. Appliquez-les ou jetez-les régulièrement pour que votre réserve reste gérable.
- Avant d'appliquer une réserve, assurez-vous que vous êtes sur la bonne branche et que votre répertoire de travail est propre.
Conclusion
Le stashing est une fonctionnalité incroyablement utile de Git qui permet aux développeurs de gérer efficacement les modifications temporaires. Il vous offre la flexibilité nécessaire pour gérer les interruptions de flux de travail et vous aide à garder votre répertoire de travail propre. Comprendre et utiliser le stockage caché peut augmenter considérablement votre productivité et faciliter la gestion des tâches parallèles dans le développement de logiciels.