Git - Opération de cache

Supposons que vous implémentiez une nouvelle fonctionnalité pour votre produit. Votre code est en cours et soudainement une escalade client survient. Pour cette raison, vous devez garder de côté votre travail sur les nouvelles fonctionnalités pendant quelques heures. Vous ne pouvez pas valider votre code partiel et vous ne pouvez pas non plus annuler vos modifications. Vous avez donc besoin d'un espace temporaire, où vous pouvez stocker vos modifications partielles et les valider plus tard.

Dans Git, l'opération de sauvegarde prend vos fichiers suivis modifiés, met en scène les modifications et les enregistre sur une pile de modifications inachevées que vous pouvez réappliquer à tout moment.

[[email protected] project]$ git status -s
M string.c
?? string

Maintenant, vous voulez changer de succursale pour l'escalade des clients, mais vous ne voulez pas valider ce sur quoi vous avez travaillé encore; vous allez donc cacher les modifications. Pour pousser une nouvelle réserve sur votre pile, exécutez legit stash commander.

[[email protected] project]$ git stash
Saved working directory and index state WIP on master: e86f062 Added my_strcpy function
HEAD is now at e86f062 Added my_strcpy function

Maintenant, votre répertoire de travail est propre et toutes les modifications sont enregistrées sur une pile. Vérifions-le avec legit status commander.

[[email protected] project]$ git status -s
?? string

Vous pouvez désormais changer de branche en toute sécurité et travailler ailleurs. Nous pouvons afficher une liste des modifications cachées en utilisant legit stash list commander.

[[email protected] project]$ git stash list
[email protected]{0}: WIP on master: e86f062 Added my_strcpy function

Supposons que vous ayez résolu l'escalade des clients et que vous soyez de retour sur votre nouvelle fonctionnalité à la recherche de votre code à moitié terminé, exécutez simplement le git stash pop , pour supprimer les modifications de la pile et les placer dans le répertoire de travail actuel.

[[email protected] project]$ git status -s
?? string

[[email protected] project]$ git stash pop

La commande ci-dessus produira le résultat suivant:

# On branch master
# Changed but not updated:
# (use "git add ..." to update what will be committed)
# (use "git checkout -- ..." to discard changes in working directory)
#
#
modified: string.c
#
# Untracked files:
# (use "git add ..." to include in what will be committed)
#
#
string
no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/[email protected]{0} (36f79dfedae4ac20e2e8558830154bd6315e72d4)

[[email protected] project]$ git status -s
M string.c
?? string