Si vous êtes positif, vous souhaitez qu'une seule commettre et sont très bien avec la direction générale de ne jamais être marqué comme "fusionné" (peut-être parce que vous êtes sur le point de le supprimer avec git branch -D my-squash-merged-branch
et ne veux plus jamais le voir encore une fois), utilisez ceci:
git checkout master
git merge --squash branch-to-merge
git commit -m "message for commit"
Cependant, après beaucoup d'essais, je crois que le meilleur moyen de fusionner la plupart des branches est:
git checkout master
git merge --no-ff branch-to-merge -m "message for commit"
Cela évite le "fast-forward" fusion qui n'autorise pas la spécification d'un -m "message"
option pour de nombreuses fusions. Il n'a pas fait de fournir un seul s'engager en tant qu'origine de la demande, mais au moins, il est facile de voir le début/fin de la branche et ainsi de le rendre facile pour les annulations et les comme. Un git log
montrera tous les commits qui ont fusionné...
commit a6672a4c3d90c35d5f39c45f307ef6b385660196
Merge: 015f8d6 f84e029
Author: Brian White <bcwhite@example.com>
Date: Wed Jan 15 20:47:35 2014 -0500
merged something trivial
commit f84e02915faa02afc9a31b8c93a6e7712420687d
Author: Brian White <bcwhite@example.com>
Date: Wed Jan 15 20:47:12 2014 -0500
added something also trivial
commit 904d5b5ff00d691d63104a77d2e2ca484732a5fb
Author: Brian White <bcwhite@example.com>
Date: Wed Jan 15 20:46:26 2014 -0500
added something trivial
commit 015f8d681bdaf65725067ee8058215cedb529dd6
Author: Brian White <bcwhite@example.com>
Date: Wed Jan 15 20:23:31 2014 -0500
optimizations to MyThing
...
... mais si vous regardez un graphique du journal (git log --graph
), vous pouvez voir que git n'est en effet reconnaître comme une simple fusion.
* commit a6672a4c3d90c35d5f39c45f307ef6b385660196
|\ Merge: 015f8d6 f84e029
| | Author: Brian White <bcwhite@example.com>
| | Date: Wed Jan 15 20:47:35 2014 -0500
| |
| | merged something trivial
| |
| * commit f84e02915faa02afc9a31b8c93a6e7712420687d
| | Author: Brian White <bcwhite@example.com>
| | Date: Wed Jan 15 20:47:12 2014 -0500
| |
| | added something also trivial
| |
| * commit 904d5b5ff00d691d63104a77d2e2ca484732a5fb
|/ Author: Brian White <bcwhite@example.com>
| Date: Wed Jan 15 20:46:26 2014 -0500
|
| added something trivial
|
* commit 015f8d681bdaf65725067ee8058215cedb529dd6
| Author: Brian White <bcwhite@example.com>
| Date: Wed Jan 15 20:23:31 2014 -0500
|
| optimizations to MyThing
...
Si une validation ou une autre activité qui se passe sur la branche master, le graphique permet d'afficher la fusion de la branche de départ à la bonne place et de rejoindre le courant de la tête, mais bien sûr tous les commits seront toujours affichées dans le journal avec les commits de la branche être au top.