J'ai une branche principale et une branche de fonctionnalité. La branche de fonctionnalité est plusieurs commits avant la branche principale, et j'aimerais fusionner la branche de fonctionnalité dans la branche principale. Je n'ai pas l'intention de --squash
et je ne veux pas rebaser
parce que j'aime préserver l'historique.
J'aime résumer ce qui a changé dans le message de validation de la fusion, car l'historique de la branche de fonctionnalité peut être alambiqué, et un bon point de départ pour moi est de copier et de modifier tous les messages de validation des validations assorties de la branche de fonctionnalité depuis la dernière fusion .
Je me souviens vaguement avoir lu quelque part que git peut compiler ces messages pour moi, mais je ne me souviens pas où je l'ai lu ou comment le faire.
Toutes nos excuses s'il s'agit d'un doublon, mais plusieurs recherches Google et SO n'ont pas réussi à le signaler.
Modifier: ce que j'essaie de faire, c'est de créer un journal des modifications pour tout ce qui a changé entre les versions.
3 Réponses :
Je me souviens vaguement avoir lu quelque part où git peut compiler ces messages pour moi
Peut-être via git rebase
, comme indiqué ici : ne passez pas par le rebase (annulez-le), mais copiez-collez les sujets des messages de validation agrégés affichés lors du rebase.
Sinon, vous ne pourriez pas ces messages manuellement (comme décrit ici ).
Ou utilisez un outil tel que antham / chyle pour récupérer ces messages de validation dans votre historique. p>
Je pense que l'option de rebase et d'annulation doit être ce dont je me souvenais. Cette option chyle
est cependant intrigante. Je vais devoir vérifier cela.
A
git log --oneline HEAD ^master
créera une sortie comme celle-ci dans git rebase -i master
.
Peut-être passer par | cat
pour supprimer les annotations colorées.
Le --log
le paramètre pour la fusion est ce que vous recherchez:
--log[=<n>], --no-log In addition to branch names, populate the log message with one-line descriptions from at most <n> actual commits that are being merged. See also git-fmt-merge-msg(1).
utiliser
git shortlog
?Rebase gardera tous les commits intacts. Utilisez-vous github? Avec github, je crée une Pull Request et la fusionne avec master. Lors de la fusion, GH donne l'option "squash and commit" ou "keep history". Choisissez selon vos besoins et fusionnez.
@MohanaRao Lorsque vous «écrasez et commettez» sur GitHub, ne perdez-vous pas l'historique de la fusion elle-même car ce n'est pas techniquement une fusion?
Certes, dans votre cas, vous choisissez l'autre option (Ne pas écraser).
J'ai trouvé ce lien, j'espère que cela vous aidera. help.github .com / articles / about-pull-request-merges /…