Stash un fichier dans Git
Parfois, lorsque nous travaillons sur un projet énorme, nous rencontrons des situations où notre état de travail devient désordonné pour diverses raisons.
Dans ce cas, nous devons changer de branche pendant un certain temps pour mieux travailler. Dans cette situation, le problème auquel nous pourrions être confrontés est que nous n’avons pas besoin de nous engager dans le travail à moitié fait juste pour pouvoir aborder ce point plus tard.
La solution à ce problème est la commande git stash
. La commande git stash
nous permet de stocker temporairement l’état de notre répertoire de travail dans le fichier temporaire.
, nous pouvons dire que nous pouvons ensuite changer de branche, valider notre travail souhaité, puis revenir ensuite au travail que nous avons mis en attente avec la commande git stash
.
En d’autres termes, on peut dire que la commande git stash
est très simple ; il stocke l’état actuel de notre répertoire de travail et l’index dans notre fichier stash. Cela signifie qu’aucune modification n’est validée dans l’index ou le répertoire de travail.
Le stockage prend l’état non pertinent de notre répertoire de travail, c’est-à-dire nos fichiers suivis modifiés et les modifications mises en scène, et l’enregistre sur un type de données de pile de modifications inachevées que vous pouvez également réappliquer ultérieurement à l’aide d’une branche différente.
Au cours de notre travail, nous pouvons apporter de nombreuses modifications et ajouter de nombreux fichiers sales, mais lorsque nous stockons, Git n’enregistre qu’un seul instantané propre de notre répertoire de travail.
Il faut savoir que stasher un fichier signifie qu’on pousse le contenu de ce fichier vers le stash
. Si nous modifions à nouveau le fichier, il sera modifié dans le stash
et non dans le répertoire de travail. Donc, nous ne devrions pas modifier le fichier après l’avoir stocké.
Nous devrions utiliser la commande stash save
pour stocker un fichier. Si nous voulons stocker toutes les modifications dans le répertoire de travail, nous devons utiliser la commande stash save --all
. Si nous voulons dé-stocker un fichier, nous devons utiliser la commande stash pop
.
Étapes pour stocker un seul fichier dans Git
Disons que nous avons sept fichiers et que nous les avons tous modifiés. Nous allons maintenant voir quelles étapes doivent être suivies pour stocker un seul des sept fichiers dans le référentiel actuel.
-
Affichage des fichiers modifiés
Dans un premier temps, nous allons exécuter la commande
git status
pour examiner la liste des fichiers modifiés.git status
-
Fichiers de mise en scène
Après avoir examiné la liste, nous exécuterons la commande
git add
pour mettre en scène les sept fichiers :git add .
-
Désorganiser le fichier
Après la mise en scène de tous les fichiers, l’étape suivante consiste à déclasser
file2
à l’aide de la commandegit reset
.git reset file2
-
Cacher le fichier
Maintenant, nous allons stocker
file2
à l’aide de la commandegit stash
pour le ramener à son stade de validation actuel dans le référentiel actuel.git stash --keep-index
L’autre méthode par laquelle nous pouvons stocker un seul fichier consiste à exécuter la commande suivante.
git stash save -p "commit message"
Avec l’aide de la méthode ci-dessus, nous pouvons sélectionner le bloc à ajouter à la réserve. De plus, si nous avons travaillé sur un fichier, nous pouvons stocker les modifications avant de le valider afin que le commit soit effectuée avec notre fichier de travail.
La commande stockera les modifications ajoutées à notre index (modifications échelonnées) et les modifications apportées aux fichiers actuellement suivis par Git (modification non échelonnée).
Le stockage est un moyen de prendre un instantané de l’état actuel de notre copie de travail, de stocker l’instantané, puis de revenir à un état de copie de travail propre.
Une fois que nous avons ajouté les modifications à l’index, nous pouvons les valider. Si nous voulons stocker les changements dans le répertoire de travail mais pas l’index, utilisez l’option --keep-index
. Les modifications stockées peuvent être réappliquées à tout moment.
Remarque : Après avoir stocké un fichier, nous devons le valider dans le référentiel. Nous ne devons pas oublier de le faire.
Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.
LinkedIn