Différences entre git merge --squash et --no-commit
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 comprenne la page d'aide de git merge
, les deux commandes me laisseraient dans un arbre de travail mis à jour, où il est toujours possible d'éditer puis de faire une validation finale (ou plusieurs validations).
Quelqu'un pourrait-il clarifier les différences entre ces 2 options? Quand devrais-je utiliser l'un au lieu de l'autre?
1 réponses
git merge --no-commit
C'est comme une fusion normale mais ne crée pas de commit de fusion. 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 commit de fusion. Lorsque vous validez les modifications fusionnées, cela ressemblera à un nouveau commit "normal" sur votre branche: sans commit de fusion dans l'historique. C'est presque comme si vous aviez fait un choix sur tous les changements fusionnés.