Comme le titre l'indique, je ne suis pas vraiment clair sur les différences entre un git merge --squash
et un git merge --no-commit
.
Pour autant que je comprends la page d'aide de git merge
, les deux commandes me laisseraient dans un arbre de travail mis à jour, où il est toujours possible de modifier puis de faire un commit final (ou plusieurs commits).
Quelqu'un pourrait-il clarifier les différences de ces 2 options? Quand utiliserais-je l'un au lieu de l'autre?
git merge --no-commit
C'est comme une fusion normale mais ne crée pas de fusion-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 fusionnera les modifications dans votre arborescence de travail sans créer de validation de fusion. Lorsque vous validez les modifications fusionnées, cela ressemblera à une nouvelle validation "normale" sur votre branche: sans validation de fusion dans l'historique. C'est presque comme si vous aviez fait le choix parmi tous les changements fusionnés.