65 votes

Différences entre Git merge --squash et --no-commit

Comme le titre l'indique, je ne sais pas vraiment quelles sont les différences entre une git merge --squash et un git merge --no-commit .

D'après ce que je comprends, la page d'aide de git merge Les deux commandes me laisseraient dans une arborescence de travail mise à jour, où il est toujours possible d'éditer et ensuite de faire un commit final (ou plusieurs commits).

Quelqu'un pourrait-il clarifier les différences entre ces deux options ? Quand devrais-je utiliser l'une plutôt que l'autre ?

81voto

ralphtheninja Points 24346
git merge --no-commit

C'est comme une fusion normale mais ne crée pas de merge-commit. Ce commit sera un commit de fusion : lorsque vous regardez l'historique, votre commit apparaîtra comme une fusion normale.

git merge --squash

Cela va fusionner les changements dans votre arbre de travail sans créer un commit de fusion. Lorsque vous livrez les changements fusionnés, cela ressemblera à un nouveau commit "normal" sur votre branche : sans un commit de fusion dans l'historique. C'est presque comme si vous aviez fait un cherry-pick sur tous les changements fusionnés.

Prograide.com

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.

Powered by:

X