{"id":469498,"date":"2025-05-23T06:13:44","date_gmt":"2025-05-23T06:13:44","guid":{"rendered":"https:\/\/www.ninjaone.com\/?p=469498"},"modified":"2025-06-14T03:27:11","modified_gmt":"2025-06-14T03:27:11","slug":"git-stash","status":"publish","type":"post","link":"https:\/\/www.ninjaone.com\/fr\/blog\/git-stash\/","title":{"rendered":"Comment utiliser Git Stash\u00a0: le guide \u00e9tape par \u00e9tape"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Ce guide se penche <\/span>sur <b>git stash<\/b><span style=\"font-weight: 400;\">, en commen\u00e7ant par son concept de base, son utilit\u00e9 et ses sc\u00e9narios d&rsquo;utilisation. Nous aborderons ensuite les principes de base, tels que la r\u00e9cup\u00e9ration et la gestion des sauvegardes temporaires (stash), et nous explorerons les techniques avanc\u00e9es. Les meilleures pratiques et leur importance dans le d\u00e9veloppement de logiciels concluront notre guide, assurant une compr\u00e9hension compl\u00e8te de git stash.<\/span><\/p>\n<h2>Git et l&rsquo;importance de git stash<\/h2>\n<p><span style=\"font-weight: 400;\">Avant d&rsquo;aller plus loin dans les sp\u00e9cificit\u00e9s de git stash, il est crucial de comprendre Git lui-m\u00eame. Pour faire court, Git est un <a href=\"https:\/\/www.ninjaone.com\/fr\/blog\/maitriser-les-systemes-de-gestion-de-versions-le-guide-complet\/\">syst\u00e8me de contr\u00f4le de version<\/a> distribu\u00e9 qui est largement utilis\u00e9 dans le d\u00e9veloppement de logiciels pour suivre les modifications apport\u00e9es au code source pendant le d\u00e9veloppement. Sa nature distribu\u00e9e permet \u00e0 plusieurs d\u00e9veloppeurs de travailler simultan\u00e9ment sur la m\u00eame base de code sans interf\u00e9rer avec le travail des autres.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Les principales caract\u00e9ristiques qui rendent Git indispensable aux d\u00e9veloppeurs sont les suivantes\u00a0:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Ramification et fusion\u00a0: <\/b><span style=\"font-weight: 400;\">Le mod\u00e8le de ramification de Git permet aux d\u00e9veloppeurs de travailler dans des environnements isol\u00e9s appel\u00e9s \u00ab\u00a0branches\u00a0\u00bb et de fusionner leurs modifications avec le code source de mani\u00e8re fluide.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Rapidit\u00e9 et efficacit\u00e9\u00a0: <\/b><span style=\"font-weight: 400;\">Git est con\u00e7u pour la performance. Ses op\u00e9rations sont rapides, ce qui lui permet de s&rsquo;adapter \u00e0 des projets de toute taille.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Int\u00e9grit\u00e9 des donn\u00e9es\u00a0: <\/b><span style=\"font-weight: 400;\">Git garantit l&rsquo;int\u00e9grit\u00e9 du code source, en conservant un historique complet et des capacit\u00e9s de suivi des versions.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Comprendre ces aspects de Git ouvre la voie \u00e0 une exploration plus approfondie de la commande git stash, un outil qui, bien que moins souvent abord\u00e9 que d&rsquo;autres comme git commit ou git merge, peut n\u00e9anmoins \u00eatre tr\u00e8s utile \u00e0 un d\u00e9veloppeur.<\/span><\/p>\n<h2>Qu&rsquo;est-ce que git stash\u00a0?<\/h2>\n<p><span style=\"font-weight: 400;\">La commande git stash est une fonctionnalit\u00e9 puissante de Git. Il s&rsquo;agit essentiellement d&rsquo;un m\u00e9canisme permettant de sauvegarder l&rsquo;\u00e9tat actuel de votre r\u00e9pertoire de travail et de votre index sans effectuer de commit. C&rsquo;est comme un presse-papiers pour les modifications non valid\u00e9es (dans le sens d&rsquo;un commit non effectu\u00e9), offrant un instantan\u00e9 qui peut \u00eatre r\u00e9appliqu\u00e9 plus tard. Cette fonctionnalit\u00e9 fait partie int\u00e9grante du contr\u00f4le de version, car elle permet de g\u00e9rer les modifications de code de mani\u00e8re plus souple et plus efficace. Elle met temporairement \u00e0 l&rsquo;abri, ou \u00ab\u00a0stocke\u00a0\u00bb, les modifications que vous avez apport\u00e9es au r\u00e9pertoire de travail, ce qui vous permet de travailler sur autre chose et d&rsquo;y revenir plus tard.<\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Les cas d&rsquo;utilisation sont les suivants\u00a0:<\/span><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Changement de contexte\u00a0: <\/b><span style=\"font-weight: 400;\">passez rapidement d&rsquo;une branche \u00e0 l&rsquo;autre ou d&rsquo;une t\u00e2che \u00e0 l&rsquo;autre sans vous retrouver avec un travail \u00e0 moiti\u00e9 fait.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Exp\u00e9rimentation\u00a0: <\/b><span style=\"font-weight: 400;\">testez un nouveau code ou de nouvelles id\u00e9es sans affecter le projet principal.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Gestion des travaux en cours\u00a0: <\/b><span style=\"font-weight: 400;\">gardez votre r\u00e9pertoire de travail ordonn\u00e9 et clair en y rangeant les travaux en cours qui ne sont pas pr\u00eats \u00e0 avoir un commit d&rsquo;effectu\u00e9.<\/span><\/li>\n<\/ul>\n<h3>Dans les projets multi-d\u00e9veloppeurs, git stash est inestimable<\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Optimisation de l&rsquo;inspection des codes\u00a0: <\/b><span style=\"font-weight: 400;\">Permet une inspection plus rapide du code et un suivi des bugs, ce qui facilite les pratiques d&rsquo;inspection du code par l&rsquo;\u00e9quipe et qui est essentiel pour identifier et r\u00e9soudre rapidement les probl\u00e8mes.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Nettoyer le r\u00e9pertoire de travail\u00a0: <\/b><span style=\"font-weight: 400;\">Aide \u00e0 maintenir des conditions de travail ordonn\u00e9es, r\u00e9duisant ainsi le risque de validation accidentelle d&rsquo;un travail \u00e0 moiti\u00e9 fait ou de fichiers erron\u00e9s.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Zone d&rsquo;exp\u00e9rimentation s\u00e9curis\u00e9e\u00a0: <\/b><span style=\"font-weight: 400;\">Facilite les changements exp\u00e9rimentaux sans affecter la base de code principale, ce qui permet aux d\u00e9veloppeurs d&rsquo;essayer de nouvelles id\u00e9es sans perturber le flux de travail.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Aide aux environnements \u00e9volutifs\u00a0: <\/b><span style=\"font-weight: 400;\">Peut \u00eatre utile dans les r\u00e9seaux fortement conteneuris\u00e9s et\/ou \u00e0 \u00e9chelle horizontale, par exemple dans les sc\u00e9narios de d\u00e9ploiement progressif, en g\u00e9rant efficacement les changements de code \u00e0 travers les diff\u00e9rentes \u00e9tapes de d\u00e9ploiement.<\/span><\/li>\n<\/ul>\n<h3>Sc\u00e9narios cl\u00e9s pour l&rsquo;utilisation de git stash<\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Changement urgent de branche\u00a0: <\/b><span style=\"font-weight: 400;\">Changement de branche pour les corrections urgentes, ce qui permet aux d\u00e9veloppeurs de changer rapidement d&rsquo;orientation sans perdre de vue la t\u00e2che en cours.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Mise en pause du travail en cours\u00a0: <\/b><span style=\"font-weight: 400;\">Met temporairement de c\u00f4t\u00e9 les modifications pour travailler sur autre chose, ce qui permet de hi\u00e9rarchiser les t\u00e2ches sans m\u00e9langer les diff\u00e9rentes modifications de code.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Essais de code de s\u00e9curit\u00e9\u00a0: <\/b><span style=\"font-weight: 400;\">Exp\u00e9rimente le code sans s&rsquo;engager dans la branche actuelle, id\u00e9al pour tester de nouvelles fonctionnalit\u00e9s ou des corrections sans modifier la base de code principale ou la branche de travail actuelle.<\/span><\/li>\n<\/ul>\n<h2>Les bases de Git stash<\/h2>\n<p><span style=\"font-weight: 400;\">L&rsquo;archivage des modifications dans Git est simple. Il suffit d&rsquo;utiliser git stash dans votre r\u00e9pertoire de travail. Cette commande va mettre en sauvegarder temporairement tous les changements modifi\u00e9s et pr\u00e9par\u00e9es pour le commit, vous laissant avec un r\u00e9pertoire de travail propre.<\/span><\/p>\n<h3>Utilisation de la commande git stash<\/h3>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Modifiez votre r\u00e9pertoire de travail.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Ex\u00e9cutez git stash pour conserver les modifications.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Le r\u00e9pertoire de travail revient \u00e0 l&rsquo;\u00e9tat du dernier commit.<\/span><\/li>\n<\/ol>\n<h3>Comment sauvegarder temporairement les changements avec un message<\/h3>\n<p><span style=\"font-weight: 400;\">Utiliser git stash pour sauvegarder le message. Cela permet d&rsquo;organiser et d&rsquo;identifier les sauvegardes temporaires (stash), en particulier lorsque l&rsquo;on travaille avec plusieurs stashs.<\/span><\/p>\n<h3>Comment consulter vos stashs<\/h3>\n<p><span style=\"font-weight: 400;\">Utiliser la liste git stash. Cette commande affiche une liste de toutes les sauvegardes temporaires, chacune avec un identifiant et le message (s&rsquo;il est fourni).<\/span><\/p>\n<h3>Limitations communes de git stash<\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Il ne s&rsquo;agit pas d&rsquo;un substitut aux commits.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Les sauvegardes temporaires sont locales et ne sont pas partag\u00e9es entre les d\u00e9p\u00f4ts.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Les fichiers non suivis et ignor\u00e9s ne sont pas sauvegard\u00e9s temporairement par d\u00e9faut.<\/span><\/li>\n<\/ul>\n<h2>Cas d&rsquo;utilisation de Git stash<\/h2>\n<p>Git stash dispose de fonctionnalit\u00e9s importantes que les d\u00e9veloppeurs peuvent utiliser dans diff\u00e9rents sc\u00e9narios. Voici quelques-uns de ses cas d&rsquo;utilisation.<\/p>\n<h3>1. Sauvegarde des travaux en cours<\/h3>\n<p><b>Cas de figure\u00a0:<\/b> Lorsqu&rsquo;un d\u00e9veloppeur doit passer \u00e0 une autre branche pour se concentrer sur un probl\u00e8me critique, mais qu&rsquo;il est en train d&rsquo;impl\u00e9menter une nouvelle correction de bug.<\/p>\n<p><b>Cas d&rsquo;utilisation<\/b><b>\u00a0:<\/b> Git stash enregistre les modifications en cours sans effectuer de commit, ce qui permet aux d\u00e9veloppeurs de passer \u00e0 une autre branche ou d&rsquo;apporter des modifications avant de revenir \u00e0 la branche d&rsquo;origine et de r\u00e9cup\u00e9rer les modifications stock\u00e9es.<\/p>\n<h3>2. Nettoyage du r\u00e9pertoire de travail<\/h3>\n<p><b>Cas de figure\u00a0:<\/b> Lorsqu&rsquo;un d\u00e9veloppeur a des modifications non valid\u00e9es dans son r\u00e9pertoire de travail qu&rsquo;il ne peut pas perdre, mais qu&rsquo;il souhaite commencer \u00e0 travailler sur une nouvelle fonctionnalit\u00e9 \u00e0 partir de z\u00e9ro.<\/p>\n<p><b>Cas d&rsquo;utilisation<\/b><b>\u00a0:<\/b> Git stash supprime temporairement les modifications non valid\u00e9es. Il nettoie un r\u00e9pertoire de travail, ce qui permet aux d\u00e9veloppeurs de cr\u00e9er une nouvelle fonctionnalit\u00e9 \u00e0 partir de z\u00e9ro, puis de r\u00e9appliquer leurs modifications pr\u00e9c\u00e9dentes.<\/p>\n<h3>3. Tester diff\u00e9rentes approches<\/h3>\n<p><b>Cas de figure\u00a0:<\/b> Lorsqu&rsquo;un d\u00e9veloppeur travaille sur une solution et souhaite essayer une nouvelle approche sans perdre son travail en cours.<\/p>\n<p><b>Cas d&rsquo;utilisation<\/b><b>\u00a0:<\/b> Git stash permet aux d\u00e9veloppeurs de conserver leurs modifications en cours et d&rsquo;essayer diff\u00e9rentes approches. Ils peuvent revenir aux modifications qu&rsquo;ils ont sauvegard\u00e9es temporairement si leur nouvelle approche ne fonctionne pas.<\/p>\n<h3>4. R\u00e9soudre les conflits de fusion<\/h3>\n<p><b>Cas de figure\u00a0:<\/b> Lorsqu&rsquo;un d\u00e9veloppeur souhaite mettre temporairement de c\u00f4t\u00e9 certaines modifications pour traiter d&rsquo;autres probl\u00e8mes urgents tout en trouvant une solution \u00e0 un conflit de fusion complexe.<\/p>\n<p><b>Cas d&rsquo;utilisation<\/b><b>\u00a0:<\/b> Le stash Git permet de sauvegarder temporairement les modifications, ce qui permet aux d\u00e9veloppeurs de se concentrer sur d&rsquo;autres probl\u00e8mes et de revenir ensuite \u00e0 la r\u00e9solution des conflits de fusion.<\/p>\n<h3>5. Sauvegarde temporaire partielle<\/h3>\n<p><b>Cas de figure\u00a0:<\/b> Lorsqu&rsquo;un d\u00e9veloppeur veut choisir seulement quelques-unes des multiples modifications qu&rsquo;il veut sauvegarder temporairement parmi les modifications de son r\u00e9pertoire de travail.<\/p>\n<p><b>Cas d&rsquo;utilisation<\/b><b>\u00a0:<\/b> Git stash permet d&rsquo;archiver des fichiers sp\u00e9cifiques ou des parties de fichiers, ce qui permet aux d\u00e9veloppeurs de mieux contr\u00f4ler ce qui est archiv\u00e9.<\/p>\n<h3>6. Travailler avec plusieurs fonctionnalit\u00e9s<\/h3>\n<p><b>Cas de figure\u00a0:<\/b> Lorsqu&rsquo;un d\u00e9veloppeur doit basculer entre plusieurs fonctionnalit\u00e9s sur lesquelles il travaille simultan\u00e9ment.<\/p>\n<p><b>Cas d&rsquo;utilisation<\/b><b>\u00a0:<\/b> Le stash Git permet aux d\u00e9veloppeurs de sauvegarder l&rsquo;\u00e9tat d&rsquo;avancement de la fonctionnalit\u00e9 sur laquelle ils travaillent actuellement, afin qu&rsquo;ils puissent passer \u00e0 une autre fonctionnalit\u00e9 sans perdre les modifications qu&rsquo;ils ont apport\u00e9es. Les d\u00e9veloppeurs peuvent sauvegarder temporairement leur travail sur une fonctionnalit\u00e9, passer \u00e0 une branche pour une autre, puis r\u00e9appliquer les modifications sauvegard\u00e9es temporairement lorsqu&rsquo;ils reviennent \u00e0 la fonctionnalit\u00e9 sur laquelle ils travaillent.<\/p>\n<h3>7. V\u00e9rification de code<\/h3>\n<p><b>Cas de figure\u00a0:<\/b> Un d\u00e9veloppeur doit laisser des modifications dont le commit n&rsquo;a pas \u00e9t\u00e9 effectu\u00e9 dans son r\u00e9pertoire de travail pour v\u00e9rifier le code d&rsquo;un coll\u00e8gue.<\/p>\n<p><b>Cas d&rsquo;utilisation<\/b><b>\u00a0:<\/b> Git stash permet aux d\u00e9veloppeurs de sauvegarder temporairement leurs modifications, de v\u00e9rifier le code de leurs coll\u00e8gues, puis de r\u00e9appliquer leurs modifications sauvegard\u00e9es temporairement lorsqu&rsquo;ils reviennent dans leur r\u00e9pertoire de travail apr\u00e8s avoir regard\u00e9 le code de leur coll\u00e8gue.<\/p>\n<h3>8. Sauvegarde du travail dont le commit n&rsquo;a pas \u00e9t\u00e9 effectu\u00e9<\/h3>\n<p><b>Cas de figure\u00a0:<\/b> Lorsqu&rsquo;un d\u00e9veloppeur souhaite sauvegarder ses modifications non valid\u00e9es dans une autre branche ou dans un r\u00e9pertoire distant.<\/p>\n<p><b>Cas d&rsquo;utilisation<\/b><b>\u00a0:<\/b> Git stash permet de stocker des modifications, de cr\u00e9er une nouvelle branche \u00e0 partir du stash, de pousser cette branche vers un r\u00e9pertoire distant et de fournir une sauvegarde du travail d&rsquo;un d\u00e9veloppeur pour lequel le commit n&rsquo;a pas \u00e9t\u00e9 effectu\u00e9.<\/p>\n<h3>9. Travail collaboratif<\/h3>\n<p><b>Cas de figure\u00a0:<\/b> Lorsqu&rsquo;un d\u00e9veloppeur a besoin d&rsquo;extraire le dernier r\u00e9f\u00e9rentiel sans perdre ses modifications locales mais qu&rsquo;il travaille sur un r\u00e9pertoire partag\u00e9.<\/p>\n<p><b>Cas d&rsquo;utilisation<\/b><b>\u00a0:<\/b> Gits stash permet aux d\u00e9veloppeurs de sauvegarder temporairement leurs modifications, puis d&rsquo;extraire les derni\u00e8res modifications ou mises \u00e0 jour du r\u00e9pertoire distant. Ils peuvent ensuite r\u00e9appliquer les modifications qu&rsquo;ils ont sauvegard\u00e9es temporairement.<\/p>\n<h3>10. Automatiser le flux de travail<\/h3>\n<p><b>Cas de figure\u00a0:<\/b> Lorsqu&rsquo;un d\u00e9veloppeur utilise des scripts ou des hooks qui n\u00e9cessitent un r\u00e9pertoire de travail propre.<\/p>\n<p><b>Cas d&rsquo;utilisation<\/b><b>\u00a0:<\/b> Git stash permet aux d\u00e9veloppeurs de conserver les modifications qu&rsquo;ils ont effectu\u00e9es avant d&rsquo;ex\u00e9cuter les scripts ou les hooks. Ils peuvent ensuite les r\u00e9appliquer afin de garantir un r\u00e9pertoire de travail propre pour les processus d&rsquo;automatisation.<\/p>\n<p>Il ne s&rsquo;agit l\u00e0 que des cas d&rsquo;utilisation les plus courants de Git Stash, qui d\u00e9montrent sa flexibilit\u00e9 en mati\u00e8re de solutions et de rationalisation des flux de travail de d\u00e9veloppement.<\/p>\n<h2>R\u00e9cup\u00e9ration des modifications sauvegard\u00e9es temporairement<\/h2>\n<h3>Pour r\u00e9appliquer les derni\u00e8res modifications sauvegard\u00e9es temporairement<\/h3>\n<p><span style=\"font-weight: 400;\">Utilisez git stash apply. Cette commande r\u00e9applique les modifications les plus r\u00e9centes, mais ne les supprime pas de la liste de cache.<\/span><\/p>\n<h3>La diff\u00e9rence entre apply et pop<\/h3>\n<p><span style=\"font-weight: 400;\">git stash pop diff\u00e8re de apply car il applique le stash et le retire ensuite de la liste des stashs. Il est utilis\u00e9 lorsque vous avez la certitude de ne plus avoir besoin des changements sauvegard\u00e9s temporairement.<\/span><\/p>\n<h3>Appliquer des stashs sp\u00e9cifiques \u00e0 partir de plusieurs stashs stock\u00e9s<\/h3>\n<ol>\n<li><span style=\"font-weight: 400;\"> Listez les stashs avec git stash list.<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> Appliquez le stash d\u00e9sir\u00e9 en utilisant son identifiant : git stash apply stash@{n}.<\/span><\/li>\n<\/ol>\n<p><b>Par exemple<\/b><span style=\"font-weight: 400;\">\u00a0: Si la liste de git stash affiche deux stash, utilisez git stash apply stash@{1} pour appliquer le second (l&rsquo;\u00e9num\u00e9ration commence \u00e0 partir de z\u00e9ro).<\/span><\/p>\n<h2>G\u00e9rer et vider les stashs<\/h2>\n<h3>Comment supprimer un stash ou effacer en toute s\u00e9curit\u00e9 tous les changements sauvegard\u00e9s temporairement\u00a0?<\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Supprimer un stash sp\u00e9cifique\u00a0: Utiliser git stash drop stash@{n}\u00a0<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Pour effacer tous les stashs (et non un stash sp\u00e9cifique), la commande est git stash clear.<\/span><\/li>\n<\/ul>\n<h3>Strat\u00e9gies de r\u00e9cup\u00e9ration des stashs supprim\u00e9s accidentellement<\/h3>\n<p><span style=\"font-weight: 400;\">Les stashs sont, par d\u00e9finition, locaux et ne sont ni valid\u00e9s (commit) ni transmis. R\u00e9cup\u00e9rer les stashs supprim\u00e9s est un complexe car Git ne fournit pas de moyen direct. Cependant, il est parfois possible de les r\u00e9cup\u00e9rer \u00e0 l&rsquo;aide de reflog si le stash a \u00e9t\u00e9 r\u00e9cemment supprim\u00e9\u00a0: cet outil ne fonctionne que localement et peut vous aider \u00e0 retrouver l&#8217;emplacement des fichiers temporaires avec vos fichiers temporaires qui n&rsquo;ont pas encore \u00e9t\u00e9 supprim\u00e9s.<\/span><\/p>\n<h3>Bonnes pratiques en mati\u00e8re de gestion des stashs<\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Maintenance pr\u00e9ventive\u00a0: <\/b><span style=\"font-weight: 400;\">V\u00e9rifier r\u00e9guli\u00e8rement les stashs inutiles et les \u00e9liminer.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>N&rsquo;oubliez pas les commentaires\u00a0: <\/b><span style=\"font-weight: 400;\">Utiliser des messages descriptifs pour faciliter l&rsquo;identification.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Utiliser l&rsquo;outil adapt\u00e9\u00a0:<\/b><span style=\"font-weight: 400;\"> \u00c9vitez de vous fier \u00e0 long terme aux stashs et privil\u00e9giez les commits pour les changements \u00e0 long terme.<\/span><\/li>\n<\/ul>\n<h3>Int\u00e9grer la gestion des stashs dans les flux de travail<\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Sauvegardez temporairement les modifications avant de changer de branche.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Utilisez les stashs pour des exp\u00e9rimentations temporaires.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Appliquez ou supprimez r\u00e9guli\u00e8rement des stashs afin de maintenir la liste des sauvegardes temporaires \u00e0 un niveau raisonnable.<\/span><\/li>\n<\/ul>\n<h2>Techniques avanc\u00e9es dans Git stash<\/h2>\n<h3>Concernant la sauvegarde temporaire de fichiers ou de modifications sp\u00e9cifiques<\/h3>\n<p><span style=\"font-weight: 400;\">Pour sauvegarder temporairement des fichiers sp\u00e9cifiques, utilisez git stash push [file1] [file2]. Cela permet de cibler uniquement les fichiers ou les modifications sp\u00e9cifi\u00e9s, ce qui permet de mieux contr\u00f4ler ce qui est sauvegard\u00e9 temporairement en am\u00e9liorant la pr\u00e9cision du contr\u00f4le du stash.<\/span><\/p>\n<h3>Gestion des conflits lors de l&rsquo;application de modifications sauvegard\u00e9es temporairement<\/h3>\n<p><span style=\"font-weight: 400;\">Lors de l&rsquo;application des stashs, des conflits peuvent survenir. Traitez-les comme vous le feriez avec un conflit de fusion\u00a0: modifiez les fichiers pour r\u00e9soudre les conflits, puis ajoutez-les et effectuez-en le commit.<\/span><\/p>\n<h3>Git stash facilite le changement de branche<\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Sauvegarde temporaire des modifications dans la branche courante.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Passage \u00e0 la branche cible.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Application du stash dans la nouvelle branche.<\/span><\/li>\n<\/ul>\n<h3>Commandes avanc\u00e9es de git stash<\/h3>\n<p><span style=\"font-weight: 400;\">Voici quelques commandes avanc\u00e9es de git stash qui r\u00e9pondent \u00e0 des cas d&rsquo;utilisation courants ou plus sp\u00e9cialis\u00e9s\u00a0:<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<ul>\n<li aria-level=\"1\"><b>Sauvegarder temporairement des fichiers non suivis\u00a0: <\/b><span style=\"font-weight: 400;\">git stash &#8211;include-untracked ou git stash -u<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Par d\u00e9faut, git stash ne sauvegarde temporairement que les fichiers suivis (ceux qui ont \u00e9t\u00e9 ajout\u00e9s \u00e0 l&rsquo;index). Cette commande vous permet \u00e9galement de sauvegarder temporairement des fichiers non suivis (nouveaux fichiers qui n&rsquo;ont pas encore \u00e9t\u00e9 ajout\u00e9s \u00e0 l&rsquo;index), ce qui est utile lorsque vous avez de nouveaux fichiers pour lesquels vous n&rsquo;\u00eates pas pr\u00eat \u00e0 effectuer le commit.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<ul>\n<li aria-level=\"1\"><b>Sauvegarder temporairement des fichiers sp\u00e9cifiques\u00a0: <\/b><span style=\"font-weight: 400;\">git stash push -m \u00ab\u00a0message\u00a0\u00bb &#8212; path\/to\/file1 path\/to\/file2<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Cette commande permet de sauvegarder temporairement des fichiers ou des r\u00e9pertoires sp\u00e9cifiques, plut\u00f4t que l&rsquo;ensemble du r\u00e9pertoire de travail. Particuli\u00e8rement utile lorsque vous souhaitez s\u00e9parer les modifications dans diff\u00e9rents fichiers ou r\u00e9pertoires et les g\u00e9rer de mani\u00e8re ind\u00e9pendante.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<ul>\n<li aria-level=\"1\"><b>Cr\u00e9ation d&rsquo;une branche \u00e0 partir d&rsquo;un stash\u00a0:<\/b><span style=\"font-weight: 400;\"> git stash branch new_branch_name stash@{n}<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Si vous avez une sauvegarde temporaire (stash@{n}) et que vous r\u00e9alisez qu&rsquo;elle devrait \u00eatre sur une branche s\u00e9par\u00e9e, cette commande cr\u00e9e une nouvelle branche \u00e0 partir du commit o\u00f9 le stash a \u00e9t\u00e9 cr\u00e9\u00e9, y applique les modifications du stash, puis supprime la sauvegarde temporaire. C&rsquo;est un excellent moyen de g\u00e9rer les modifications enregistr\u00e9es temporairement qui ont \u00e9volu\u00e9 vers une fonctionnalit\u00e9 plus importante ou une correction de bug. Ceci est utile lorsqu&rsquo;un stash ne s&rsquo;applique pas proprement \u00e0 la branche courante.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<ul>\n<li aria-level=\"1\"><b>Appliquer un stash sans index\u00a0: <\/b><span style=\"font-weight: 400;\">git stash apply &#8211;index<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Normalement, lorsque vous appliquez un stash, les modifications qui ont \u00e9t\u00e9 mises \u00e0 disposition lors de sa cr\u00e9ation ne le sont plus. L&rsquo;utilisation de &#8211;index r\u00e9applique la sauvegarde temporaire et pr\u00e9pare \u00e9galement pour le commit les modifications qui ont \u00e9t\u00e9 index\u00e9es au moment de la sauvegarde temporaire. Cette fonction est utile lorsque vous souhaitez pr\u00e9server l&rsquo;\u00e9tat de l&rsquo;index de vos modifications sauvegard\u00e9es temporairement.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><\/p>\n<ul>\n<li aria-level=\"1\"><b>Stash interactif\u00a0:<\/b><span style=\"font-weight: 400;\"> git stash -p ou git stash &#8211;patch<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Cette commande vous permet de s\u00e9lectionner de mani\u00e8re interactive des bout de changements \u00e0 sauvegarder temporairement. Git vous affichera un message pour chaque modification dans votre r\u00e9pertoire de travail, et vous pourrez choisir de la sauvegarder temporairement ou non. Ceci est particuli\u00e8rement utile lorsque vous souhaitez contr\u00f4ler de fa\u00e7on pr\u00e9cise ce qui est sauvegard\u00e9 temporairement.<\/span><\/p>\n<h2>Bonnes pratiques concernant Git stash<\/h2>\n<p>Comme beaucoup d&rsquo;autres processus de d\u00e9veloppement, git stash comprend \u00e9galement des strat\u00e9gies qui aident les d\u00e9veloppeurs \u00e0 utiliser ses puissantes fonctionnalit\u00e9s. Voici quelques bonnes pratiques dans git stash\u00a0:<\/p>\n<p><b>Utilisez le stash avec parcimonie\u00a0:<\/b> En d&rsquo;autres termes, n&rsquo;abusez pas de git stash. Plut\u00f4t que de les sauvegarder temporairement, pr\u00e9f\u00e9rez utiliser des branches d\u00e9di\u00e9es pour les travaux en cours \u00e0 long terme. N&rsquo;oubliez pas d&rsquo;utiliser la commande avec mod\u00e9ration, surtout lorsqu&rsquo;elle n&rsquo;est n\u00e9cessaire que pour travailler sur une autre t\u00e2che, car elle affectera les changements qui doivent \u00eatre effectu\u00e9s lors du commit.<\/p>\n<p><b>Utilisez des messages clairs et descriptifs\u00a0:<\/b> Les d\u00e9veloppeurs peuvent ajouter un message descriptif d\u00e9crivant les modifications qu&rsquo;ils sauvegardent temporairement. Dans cette optique, ils doivent toujours \u00eatre clairs dans les messages du stash et \u00e9viter les messages inutiles. Le fait de rendre le stash pertinent et informatif permet aux d\u00e9veloppeurs de se souvenir de son contenu exact lorsqu&rsquo;ils y reviennent plus tard. Des messages clairs facilitent \u00e9galement l&rsquo;identification et l&rsquo;application ult\u00e9rieure du bon stash, ce qui permet de le retrouver plus facilement.<\/p>\n<p><b>Tirer parti des branches\u00a0:<\/b> Il faut toujours s&rsquo;assurer qu&rsquo;une nouvelle branche est cr\u00e9\u00e9e avant d&rsquo;y enregistrer temporairement des modifications. Cela vous permet de passer \u00e0 d&rsquo;autres t\u00e2ches ou branches sans affecter vos modifications en cours. Vous pouvez ensuite revenir \u00e0 la branche et appliquer le stash lorsque vous d\u00e9cidez de travailler \u00e0 nouveau sur les modifications.<\/p>\n<p><b>Enregistrer temporairement les fichiers non suivis\u00a0:<\/b> L&rsquo;une des bonnes pratiques que les d\u00e9veloppeurs devraient toujours appliquer est d&rsquo;utiliser des commandes qui incluent des fichiers non suivis dans le stash. Cela r\u00e9duit le risque de perte de donn\u00e9es ou de modifications importantes effectu\u00e9es pr\u00e9c\u00e9demment.<\/p>\n<p><b>G\u00e9rer plusieurs stashs\u00a0: <\/b>Il existe des commandes qui permettent aux d\u00e9veloppeurs de g\u00e9rer efficacement plusieurs stashs. Il s&rsquo;agit de git stash list pour afficher tous les stashs existants, git stash apply stash@{&lt;n&gt;} (o\u00f9 &lt;n&gt; repr\u00e9sente l&rsquo;index du stash) pour appliquer un stash sp\u00e9cifique, et git stash drop stash@{&lt;n&gt;} (o\u00f9 &lt;n&gt; repr\u00e9sente l&rsquo;index du stash) pour supprimer un stash si vous n&rsquo;en avez plus l&rsquo;utilit\u00e9.<\/p>\n<p><b>Il convient d&rsquo;\u00e9tudier attentivement la possibilit\u00e9 d&rsquo;utiliser le stash\u00a0: <\/b>Tout comme la premi\u00e8re bonne pratique, la commande stash pop (git stash pop) doit \u00eatre utilis\u00e9e avec discernement. Bien que cette commande offre un moyen rapide d&rsquo;appliquer et de supprimer un stash, l&rsquo;op\u00e9ration peut entra\u00eener la fusion de conflits si les modifications sauvegard\u00e9es temporairement entrent en conflit avec l&rsquo;arbre de travail actuel. Vous pouvez \u00e9galement utiliser la commande git stash apply pour appliquer le stash sans le supprimer. Cela vous permet de r\u00e9soudre les conflits manuellement avant de supprimer le stash avec git stash drop.<\/p>\n<p><b>Effectuer les changements le plus rapidement possible\u00a0:<\/b> Le stash ne doit \u00eatre utilis\u00e9 que comme une solution temporaire. Une fois que vous avez termin\u00e9 un ensemble de modifications, vous devez en effectuer le commit dans le r\u00e9pertoire afin de conserver une trace des modifications.<\/p>\n<h2>Autres strat\u00e9gies utiles pour la Git stash<\/h2>\n<h3>Comment maintenir un historique Git propre<\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Privil\u00e9giez la permanence en effectuant des commits\u00a0: <\/b><span style=\"font-weight: 400;\">Pr\u00e9f\u00e9rez les commits aux stashs pour les modifications permanentes.<\/span>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">git commit -m \u00ab\u00a0Message du commit\u00a0\u00bb<\/span><\/li>\n<\/ul>\n<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Maintenance du stash\u00a0: <\/b><span style=\"font-weight: 400;\">Nettoyer r\u00e9guli\u00e8rement les stashs.<\/span>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">git stash list, suivi de git stash drop stash@{n}<\/span><\/li>\n<\/ul>\n<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Solution temporaire\u00a0: <\/b><span style=\"font-weight: 400;\">Utilisez vos stashs pour des changements temporaires et non \u00e0 long terme.<\/span><\/li>\n<\/ul>\n<h3>Les pi\u00e8ges courants de git stash \u00e0 \u00e9viter<\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>\u00c9vitez les sauvegardes temporaires excessives\u00a0: <\/b><span style=\"font-weight: 400;\">s&rsquo;appuyer excessivement sur les stashs pour les changements importants.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Pensez \u00e0 nettoyer les stashs\u00a0: <\/b><span style=\"font-weight: 400;\">oublier d&rsquo;appliquer ou de supprimer des sauvegardes temporaires.<\/span>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">git stash apply ou git stash pop<\/span><\/li>\n<\/ul>\n<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Bien savoir ce qui se trouve dans les stashs\u00a0: <\/b><span style=\"font-weight: 400;\">ne plus savoir exactement quelle sauvegarde temporaire contient quoi.<\/span>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">git stash list pour v\u00e9rifier les stashs<\/span><\/li>\n<\/ul>\n<\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Clarifiez \u00e0 l&rsquo;aide de commentaires\u00a0: <\/b><span style=\"font-weight: 400;\">confusion dans les stashs en raison d&rsquo;un manque de commentaires sur ces derniers.<\/span>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"2\"><span style=\"font-weight: 400;\">git stash save \u00ab\u00a0Message descriptif\u00a0\u00bb<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>Lors de l&rsquo;int\u00e9gration de git stash dans des projets d&rsquo;\u00e9quipe<\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Communiquez vos stashs\u00a0:<\/b><span style=\"font-weight: 400;\"> communiquer les changements sauvegard\u00e9s temporairement s&rsquo;ils ont un impact sur les autres.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Am\u00e9lioration du flux de travail\u00a0:<\/b><span style=\"font-weight: 400;\"> utilisez les stashs pour am\u00e9liorer le flux de travail personnel.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Gardez vos sauvegardes temporaires au niveau local\u00a0: <\/b><span style=\"font-weight: 400;\">\u00e9vitez de pousser des stashs vers des r\u00e9pertoires partag\u00e9s, \u00e0 moins qu&rsquo;une nouvelle branche ne doive \u00eatre cr\u00e9\u00e9e \u00e0 partir d&rsquo;une sauvegarde temporaire afin d&rsquo;effectuer le commit des modifications locales au r\u00e9pertoire de la mani\u00e8re la plus claire possible.<\/span><\/li>\n<\/ul>\n<h2>R\u00e9solution des probl\u00e8mes courants li\u00e9s \u00e0 git stash<\/h2>\n<h3>R\u00e9soudre les conflits d&rsquo;application des sauvegardes temporaires<\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Probl\u00e8me : <\/b>C<span style=\"font-weight: 400;\">onflits lors de l&rsquo;application d&rsquo;un stash en raison de changements qui se chevauchent.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Solution\u00a0: <\/b><span style=\"font-weight: 400;\">R\u00e9solvez manuellement les conflits dans les fichiers concern\u00e9s, puis ajouter-les dans git et effectuez-en le commit.<\/span><\/li>\n<\/ul>\n<h3>R\u00e9cup\u00e9rer les sauvegardes temporaires perdues<\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Probl\u00e8me\u00a0:<\/b><span style=\"font-weight: 400;\"> Stashs manquants ou supprim\u00e9s accidentellement.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Solution\u00a0: <\/b><span style=\"font-weight: 400;\">Utilisez git reflog pour trouver le hash du commit pour la sauvegarde temporaire perdue, puis r\u00e9appliquez-la avec `git stash apply &lt;commit-hash&gt;`.<\/span><\/li>\n<\/ul>\n<h3>Gestion des stashs en mode HEAD d\u00e9tach\u00e9<\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Probl\u00e8me\u00a0: <\/b><span style=\"font-weight: 400;\">Appliquer des sauvegardes temporaires apr\u00e8s avoir travaill\u00e9 sans branche active.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Solution\u00a0: <\/b><span style=\"font-weight: 400;\">Passez dans la branche d\u00e9sir\u00e9e, puis appliquez le stash en utilisant git stash apply ou git stash pop.<\/span><\/li>\n<\/ul>\n<h3>\u00c9viter les doublons<\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Probl\u00e8me\u00a0: <\/b><span style=\"font-weight: 400;\">Stashs dupliqu\u00e9s apr\u00e8s les avoir appliqu\u00e9s sans les supprimer.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Solution\u00a0: <\/b><span style=\"font-weight: 400;\">Apr\u00e8s avoir appliqu\u00e9 une sauvegarde temporaire, utilisez git stash drop pour la supprimer si elle n&rsquo;est plus n\u00e9cessaire.<\/span><\/li>\n<\/ul>\n<h3>Stocker des fichiers non suivis<\/h3>\n<p><span style=\"font-weight: 400;\">Probl\u00e8me\u00a0: git stash n&rsquo;inclut pas les fichiers non suivis par d\u00e9faut.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Solution : Utilisez git stash &#8211;include-untracked ou git stash -u pour sauvegarder temporairement les fichiers non suivis.<\/span><\/p>\n<h2>Git stash, git commit, git reset et git stage\u00a0: Quelles sont les diff\u00e9rences\u00a0?<\/h2>\n<p>Puisque nous avons d\u00e9j\u00e0 parl\u00e9 de la commande git stash, voyons en quoi elle diff\u00e8re des autres commandes Git, telles que le commit, la r\u00e9initialisation et la pr\u00e9paration des modifications au commit.<\/p>\n<h3><b>Git commit<\/b><\/h3>\n<p>Git commit est une commande qui permet aux d\u00e9veloppeurs d&rsquo;enregistrer les modifications apport\u00e9es au code source, en les stockant dans le r\u00e9pertoire local. Ils le font pour conserver un instantan\u00e9 d&rsquo;un projet \u00e0 un moment pr\u00e9cis, afin de disposer d&rsquo;une r\u00e9f\u00e9rence qui repr\u00e9sente l&rsquo;\u00e9tat actuel du projet, y compris les modifications par \u00e9tapes, \u00e0 partir du moment o\u00f9 ils travaillaient dessus. Pour replacer les choses dans leur contexte, voici un tableau de leurs distinctions\u00a0:<\/p>\n<p>&nbsp;<\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Fonction<\/b><\/td>\n<td><b>Git Stash<\/b><\/td>\n<td><b>Git Commit<\/b><\/td>\n<\/tr>\n<tr>\n<td>Objectif<\/td>\n<td>Sauvegarde temporaire des modifications dont le commit n&rsquo;a pas \u00e9t\u00e9 effectu\u00e9<\/td>\n<td>Sauvegarde permanente des modifications dans l&rsquo;historique du projet<\/td>\n<\/tr>\n<tr>\n<td>R\u00e9versibilit\u00e9<\/td>\n<td>Peut \u00eatre appliqu\u00e9 ou abandonn\u00e9 ult\u00e9rieurement<\/td>\n<td>N\u00e9cessite git revert ou git reset pour annuler<\/td>\n<\/tr>\n<tr>\n<td>Ramification<\/td>\n<td>Possibilit\u00e9 de changer de branche sans commettre d&rsquo;erreur<\/td>\n<td>N&rsquo;affecte pas la ramification<\/td>\n<\/tr>\n<tr>\n<td>Cumul<\/td>\n<td>Possibilit\u00e9 de cr\u00e9er plusieurs stashs<\/td>\n<td>Les commits sont lin\u00e9aires<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3><b>R\u00e9initialisation de Git<\/b><\/h3>\n<p>Git reset est une commande compl\u00e9mentaire de git stash qui permet de g\u00e9rer les modifications apport\u00e9es \u00e0 un r\u00e9pertoire Git. Gr\u00e2ce \u00e0 ces deux commandes combin\u00e9es, les d\u00e9veloppeurs peuvent r\u00e9cup\u00e9rer les fichiers sauvegard\u00e9s et pr\u00e9c\u00e9demment supprim\u00e9s et les renvoyer dans le r\u00e9pertoire. Mais git stash et Git commit ont \u00e9galement des diff\u00e9rences, que vous pouvez voir dans le tableau ci-dessous\u00a0:<\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Fonction<\/b><\/td>\n<td><b>Git Stash<\/b><\/td>\n<td><b>Git Reset<\/b><\/td>\n<\/tr>\n<tr>\n<td>Objectif<\/td>\n<td>Sauvegarde temporaire des modifications dont le commit n&rsquo;a pas \u00e9t\u00e9 effectu\u00e9<\/td>\n<td>R\u00e9initialise le HEAD actuel vers un \u00e9tat sp\u00e9cifique<\/td>\n<\/tr>\n<tr>\n<td>R\u00e9versibilit\u00e9<\/td>\n<td>Peut \u00eatre appliqu\u00e9 ou abandonn\u00e9 ult\u00e9rieurement<\/td>\n<td>Peut \u00eatre annul\u00e9 avec git reflog mais peut \u00eatre destructif<\/td>\n<\/tr>\n<tr>\n<td>Perte de donn\u00e9es<\/td>\n<td>Pr\u00e9servation des modifications dont le commit n&rsquo;a pas \u00e9t\u00e9 effectu\u00e9<\/td>\n<td>Peut perdre des changements pour lesquels le commit n&rsquo;a pas \u00e9t\u00e9 effectu\u00e9 (en fonction des options)<\/td>\n<\/tr>\n<tr>\n<td>Ramification<\/td>\n<td>Possibilit\u00e9 de changer de branche sans commettre d&rsquo;erreur<\/td>\n<td>Peut changer de branche ou en cr\u00e9er une nouvelle<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3><b>Git stage<\/b><\/h3>\n<p>La commande git stage est utilis\u00e9e pour pr\u00e9parer les modifications en vue de leur commit. Le processus consiste \u00e0 ajouter les modifications \u00e0 la zone d&rsquo;index, ce qui permet aux d\u00e9veloppeurs de v\u00e9rifier les modifications apport\u00e9es avant d&rsquo;effectuer le commit. Le tableau ci-dessous pr\u00e9sente les principales diff\u00e9rences entre git stash et git stage\u00a0:<\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Fonction<\/b><\/td>\n<td><b>Git Stash<\/b><\/td>\n<td><b>Git Stage<\/b><\/td>\n<\/tr>\n<tr>\n<td>Objectif<\/td>\n<td>Sauvegarde temporaire des modifications dont le commit n&rsquo;a pas \u00e9t\u00e9 effectu\u00e9<\/td>\n<td>Pr\u00e9parer les modifications pour le commit<\/td>\n<\/tr>\n<tr>\n<td>Emplacement<\/td>\n<td>Zone de stash<\/td>\n<td>Zone d&rsquo;index<\/td>\n<\/tr>\n<tr>\n<td>Commit<\/td>\n<td>N\u00e9cessite git stash pop ou git stash apply pour le commit<\/td>\n<td>N\u00e9cessite git commit pour effectuer le commit<\/td>\n<\/tr>\n<tr>\n<td>R\u00e9versibilit\u00e9<\/td>\n<td>Peut \u00eatre appliqu\u00e9 ou abandonn\u00e9 ult\u00e9rieurement<\/td>\n<td>Les modifications peuvent \u00eatre supprim\u00e9es avec git reset HEAD &lt;file&gt;<\/td>\n<\/tr>\n<tr>\n<td>Ramification<\/td>\n<td>Possibilit\u00e9 de changer de branche sans commettre d&rsquo;erreur<\/td>\n<td>N&rsquo;affecte pas la ramification<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>La pratique de la sauvegarde temporaire permet de d\u00e9velopper de bonnes habitudes de d\u00e9veloppement<\/h2>\n<p><span style=\"font-weight: 400;\">L&rsquo;archivage r\u00e9gulier des modifications pour lesquelles le commit n&rsquo;a pas \u00e9t\u00e9 effectu\u00e9 encourage les d\u00e9veloppeurs \u00e0 maintenir une base de code propre et organis\u00e9e, ce qui r\u00e9duit la probabilit\u00e9 de conflits et d&rsquo;erreurs. Il s&rsquo;agit d&rsquo;une pratique qui, lorsqu&rsquo;elle est utilis\u00e9e judicieusement, peut am\u00e9liorer de mani\u00e8re significative l&rsquo;efficacit\u00e9 globale de la gestion du contr\u00f4le des versions.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Cette fonctionnalit\u00e9 n&rsquo;est pas qu&rsquo;une simple commande dans la vaste gamme de fonctionnalit\u00e9s de Git\u00a0: c&rsquo;est un outil essentiel pour des flux de travail de codage efficaces et flexibles. Sa capacit\u00e9 \u00e0 sauvegarder temporairement les travaux en cours permet aux d\u00e9veloppeurs de conserver un <a href=\"https:\/\/www.ninjaone.com\/fr\/blog\/nettoyer-active-directory\/\">r\u00e9pertoire de travail propre<\/a>, ce qui est essentiel dans les environnements de d\u00e9veloppement de logiciels complexes o\u00f9 la concentration et l&rsquo;organisation sont primordiales.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">La polyvalence de git stash r\u00e9side dans sa simplicit\u00e9 et dans le large \u00e9ventail de sc\u00e9narios auxquels il r\u00e9pond\u00a0: des changements de contexte rapides \u00e0 l&rsquo;exp\u00e9rimentation de nouvelles fonctionnalit\u00e9s, sans perturber la base de code principale. Cette fonctionnalit\u00e9 est particuli\u00e8rement utile dans le cadre d&rsquo;une collaboration o\u00f9 plusieurs d\u00e9veloppeurs contribuent au m\u00eame projet. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Les stashs permettent de s&rsquo;assurer que le travail de chaque d\u00e9veloppeur reste intact et n&rsquo;est pas affect\u00e9 par les modifications des autres, ce qui favorise une collaboration plus transparente et plus productive.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Que vous soyez un programmeur novice d\u00e9butant avec Git ou un d\u00e9veloppeur exp\u00e9riment\u00e9, la capacit\u00e9 \u00e0 utiliser habilement git stash est une comp\u00e9tence inestimable dans votre bo\u00eete \u00e0 outils de d\u00e9veloppement logiciel. Il offre un moyen strat\u00e9gique de g\u00e9rer les modifications de code, s&rsquo;aligne bien sur les pratiques de d\u00e9veloppement efficaces et contribue en fin de compte \u00e0 une <a href=\"https:\/\/www.ninjaone.com\/it-hub\/it-service-management\/what-is-agile-project-management\/\">gestion de projet optimis\u00e9e et plus agile<\/a>.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ce guide se penche sur git stash, en commen\u00e7ant par son concept de base, son utilit\u00e9 et ses sc\u00e9narios d&rsquo;utilisation. Nous aborderons ensuite les principes de base, tels que la r\u00e9cup\u00e9ration et la gestion des sauvegardes temporaires (stash), et nous explorerons les techniques avanc\u00e9es. Les meilleures pratiques et leur importance dans le d\u00e9veloppement de logiciels [&hellip;]<\/p>\n","protected":false},"author":89,"featured_media":202538,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"","_relevanssi_noindex_reason":"","_lmt_disableupdate":"no","_lmt_disable":"","footnotes":""},"categories":[4355],"tags":[],"class_list":["post-469498","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-it-ops"],"acf":[],"modified_by":"Laurie Mouret","_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/posts\/469498","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/users\/89"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/comments?post=469498"}],"version-history":[{"count":0,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/posts\/469498\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/media\/202538"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/media?parent=469498"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/categories?post=469498"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/tags?post=469498"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}