web-dev-qa-db-fra.com

Gitflow: Dois-je écraser les commits lors de la fusion d'une branche de publication vers master?

Je vais fusionner ma branche de publication en master et je me demande si je devrais écraser les commits de develop en un seul commit de fusion lors de la fusion en master.

Les documentations générales sur git flow contiennent des figures comme celle-ci dans la page Atlassian:

enter image description here

Dans ces figures, seuls les validations simples apparaissent sur le maître au lieu de toutes les validations faites pour se développer.

En fait, j'aime l'idée d'avoir une branche principale dont la version ne valide que.

Dois-je conserver tous les engagements sur le développement lors de la fusion en maître? Ou écrasez-vous les commits avant de fusionner avec master lorsque vous suivez Gitflow?

Lien vers l'article source: Gitflow Workflow - Atlassian

29
Rika

La branche principale est utilisée pour conserver un enregistrement des versions, donc chaque commit doit représenter un ensemble écrasé de modifications des branches de développement qui ont constitué la version.

Écraser les validations permet de voir plus facilement les modifications apportées à une version et de créer des branches de correctif à partir d'une validation de version lorsque cela est nécessaire. Marquez chaque commit écrasé avec le numéro de version.

20
Glen Thomas

À mon avis, et gardez à l'esprit que ce n'est qu'une opinion, et vous obtiendrez probablement des réponses différentes, vous ne devez PAS écraser les commits lors de la fusion en maître de la branche develop. Cela entraînerait une perte importante de l'historique des modifications apportées. Par exemple, presque tous les commits que je fais sont étiquetés avec un numéro de problème, de sorte qu'il existe une traçabilité complète à travers l'historique git dans les problèmes qui ont été soulevés et pourquoi les modifications ont été apportées.

Plus précisément, vous ne devriez pas fusionner directement du développement au master. En supposant que vous suivez git-flow, cette transition doit être effectuée via une branche de publication.

Si vous aviez demandé si, lors d'une branche de fonctionnalité ou de correctif, les validations devaient être écrasées, cela aurait été une réponse différente. Dans ces cas, la branche devrait sans doute être assez petite pour ne garantir qu'un seul commit, donc dans ces situations, je rebase et écrase presque toujours les commits en un seul, avant de fusionner dans la branche cible.

12
Gary Ewan Park