web-dev-qa-db-fra.com

Quand dois-je utiliser git stash?

Si je travaille sur la branche A et que je dois soudainement travailler sur la branche B avant d'être prêt avec un commit sur la branche A, je stocke mes modifications sur A, je vérifie B, j'y fais mon travail, puis je vérifie A et j'applique la réserve.

Si je travaille sur A et que je veux arrêter de travailler pour la journée, dois-je ranger mon travail puis l'appliquer le lendemain, lorsque je reprends mon travail, ou dois-je simplement laisser les choses telles qu'elles sont - des fichiers modifiés non validés dans le travail annuaire. Je ne vois pas pourquoi j'aurais besoin d'utiliser stash dans ce cas, sauf s'il y a un avantage pour la sécurité.

En outre, un autre scénario - je travaille à la fois au travail et à la maison. Si je ne suis pas prêt avec un commit quand je veux rentrer à la maison, puis-je ranger mon travail, le pousser vers GitHub et ensuite le retirer à la maison?

59
Alex Popov

Stash n'est qu'une méthode pratique. Étant donné que les succursales sont tellement bon marché et faciles à gérer dans git, je préfère personnellement presque toujours créer une nouvelle branche temporaire que de masquer, mais c'est avant tout une question de goût.

Le seul endroit que j'aime cacher est si je découvre que j'ai oublié quelque chose dans mon dernier commit et que j'ai déjà commencé à travailler sur le suivant dans la même branche:

# Assume the latest commit was already done
# start working on the next patch, and discovered I was missing something

# stash away the current mess I made
git stash save

# some changes in the working dir

# and now add them to the last commit:
git add -u
git commit --ammend

# back to work!
git stash pop
67
Mureinik

Si vous appuyez sur git stash lorsque vous avez des modifications dans la copie de travail (pas dans la zone de transit), git créera un objet caché et poussera sur la pile de cachettes (comme vous l'avez fait git checkout -- . mais vous ne perdrez pas les modifications). Plus tard, vous pouvez sauter du haut de la pile.

2
gyorgyabraham

La commande stash stockera toutes les modifications que vous avez apportées depuis votre dernier commit. Dans votre cas, il n'y a aucune raison de vous cacher si vous continuez à travailler dessus le lendemain. Je n'utiliserais que stash pour annuler les modifications que vous ne souhaitez pas valider.

2
Severin