Lequel doit-on utiliser pour masquer les micro-engagements ?
La seule différence entre git merge --squash
y git merge --no-ff --no-commit
le refus des autres parents ?
Lequel doit-on utiliser pour masquer les micro-engagements ?
La seule différence entre git merge --squash
y git merge --no-ff --no-commit
le refus des autres parents ?
Ces options existent à des fins distinctes. Votre référentiel se termine différemment.
Supposons que votre dépôt ressemble à ceci après que vous ayez fini de développer sur la branche topic :
--squash
Si vous vérifiez le master, puis git merge --squash topic; git commit -m topic
vous obtenez ceci :
--no-ff --no-commit
Au lieu de cela, si vous faites git merge --no-ff --no-commit; git commit -m topic
vous obtenez ceci :
Si vous voulez vraiment vous cacher (je veux dire supprimer de votre référentiel) vos micro-commits, utilisez --squash
. Parce que, comme vous pouvez le voir dans les images ci-dessus, vous ne cachez pas vraiment vos micro-commissions si vous ne les écrasez pas. De plus, vous n'avez pas l'habitude de pousser vos branches de sujet vers le monde. Les branches de sujet servent à faire mûrir le sujet.
Si vous voulez que votre historique contienne tous vos micro-engagements, mais les laisse dans une autre ligne de développement (la ligne verte dans les images ci-dessus), utilisez --no-ff --no-commit
. Mais n'oubliez pas que a) ce n'est pas une branche, et que b) cela ne veut rien dire dans Git car c'est juste un autre parent de votre commit.
Veuillez vous référer à Branchements Git - Qu'est-ce qu'un branchement ? si vous voulez vraiment comprendre.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.