Je sais que StackOverflow n'est pas l'endroit idéal pour les réponses basées sur les opinions, mais j'ai en fait une bonne opinion sur le moment où mettre les changements dans une réserve.
Vous ne voulez pas vous engager de modifications expérimentales
Lorsque vous apportez des modifications à votre espace de travail / arborescence de travail, si vous devez effectuer des opérations basées sur des branches telles qu'une fusion, une transmission, une extraction ou une extraction, vous devez être à un point de validation propre. Donc, si vous avez des modifications d'espace de travail, vous devez les valider. Mais que faire si vous ne voulez pas les engager? Et s'ils sont expérimentaux? Quelque chose que vous ne voulez pas faire partie de votre historique de commit? Quelque chose que vous ne voulez pas que les autres voient lorsque vous poussez vers GitHub?
Vous ne voulez pas perdre les modifications locales avec une réinitialisation matérielle
Dans ce cas, vous pouvez effectuer une réinitialisation matérielle. Mais si vous effectuez une réinitialisation matérielle, vous perdrez toutes les modifications de votre arbre de travail local car tout est écrasé à l'endroit où il se trouvait au moment du dernier commit et vous perdrez toutes vos modifications.
Donc, en ce qui concerne la réponse `` quand devriez-vous cacher '', la réponse est lorsque vous devez revenir à un point de validation propre avec un arbre de travail / index / commit synchronisé, mais vous ne voulez pas perdre vos modifications locales dans le processus. Mettez simplement vos modifications dans une réserve et vous êtes bon.
Et une fois que vous avez fait votre réserve, puis fusionné, tiré ou poussé, vous pouvez simplement cacher pop ou postuler et vous êtes de retour à votre point de départ.
Git stash et GitHub
GitHub ajoute constamment de nouvelles fonctionnalités, mais à partir de maintenant, il existe maintenant un moyen d'y enregistrer une réserve. Encore une fois, l'idée d'une réserve est qu'elle est locale et privée. Personne d'autre ne peut jeter un œil dans votre réserve sans un accès physique à votre poste de travail. Un peu de la même manière que git reflog est privé avec le git log est public. Ce ne serait probablement pas privé s'il était poussé vers GitHub.
Une astuce pourrait être de faire un diff de votre espace de travail, de vérifier le diff dans votre référentiel git, de le valider puis de le pousser. Ensuite, vous pouvez faire un pull de chez vous, obtenir le diff et le dérouler. Mais c'est une manière assez désordonnée d'atteindre ces résultats.
git diff > git-dif-file.diff