Pourquoi la réserve Git n'est-elle pas unique par branche?
Question
Je suppose que cela permet de déplacer les modifications d’une branche à l’autre, mais c’est la raison pour laquelle la sélection est faite et si vous ne faites pas de validation de vos modifications, vous ne devriez peut-être pas les déplacer?
J'ai parfois appliqué la mauvaise réserve à la mauvaise branche, ce qui m'a laissé perplexe à propos de cette question.
La solution
Comme indiqué précédemment, si vous souhaitez une "réserve par branche", vous souhaitez réellement qu'une nouvelle branche quitte la branche existante.
De plus, outre le fait déjà mentionné que la réserve vous permet d’entrer dans une branche sur laquelle vous travaillez, elle vous permet également de changer de branche avant que vous ayez tout commis. Cela n’est pas utile tant pour la sélection de documents dans le sens habituel que pour la sélection de votre copie de travail .
F.ex., tout en travaillant sur une branche, je vais souvent remarquer des bugs mineurs ou des impuretés esthétiques dans le code qui ne concernent pas cette branche. Eh bien, je les répare tout de suite. Lorsque le moment est venu de s’engager, j’engage de manière sélective les modifications pertinentes, mais pas les correctifs et les cosmétiques. Au lieu de cela, je les cache, ce qui me permet de passer à ma branche de correctifs mineurs sur stable, où je peux ensuite appliquer le masquage et valider chaque correctif mineur séparément. (En fonction des modifications en question, je vais également en cacher certaines, pour basculer vers une autre branche de fonctionnalité, où j'applique celles .)
Cela me permet d’approfondir le mode programmation lorsque je travaille et de ne pas me soucier de la bonne bibliothéconomie de mon code. Ensuite, lorsque je fais une pause mentale, je peux revenir en arrière et trier soigneusement mes modifications dans toutes les bonnes étagères.
Si la réserve n’était pas globale, ce type de flux de travail serait beaucoup plus difficile à réaliser.
Autres conseils
À partir de Git 1.6, vous pouvez maintenant appliquer des stash aux branches en utilisant
git stash branch name_of_new_branch
Git va créer la nouvelle branche pour vous et allez le vérifier! Pour plus d'informations, voir
-
info git-stash
et recherchez option =branche
.
Je suppose que vous pouvez déplacer les caches en utilisant
git stash branch <branch | new_branch> [<stash>]
et pour voir la liste de vos caches, utilisez
git stash list
si vous voulez un & st; stash " Faites fonctionner quelque chose comme ceci pour stocker vos modifications dans une nouvelle branche de votre branche actuelle.
git checkout -b new_stash
git commit -a -m "stashed changes"
pour annuler le stash
git reset HEAD^
git branch -d new_stash
git stash est particulièrement utile car vous pouvez extraire les modifications dans un arbre corrompu, c’est-à-dire si vous avez des modifications en attente et que vous souhaitez effectuer une
.git pull
et vous ne pouvez pas, vous pouvez cacher vos modifications, tirer et ensuite appliquer le stash
git stash
git pull
git stash apply
git stash clear
espérons que cela vous a aidé!
git-stash m’est très utile pour transférer les modifications non encore archivées dans une branche différente de celle actuellement extraite.
Par exemple, je me trouve souvent en train de faire de simples modifications sur une branche qui corrige des bugs; seulement pour constater que le changement sur lequel je travaille est plus complexe que ce que j'avais d'abord deviné. Git-stash est le moyen le plus simple de déplacer cet ensemble de modifications vers une autre branche.