Gitflowを使用して、release-1.0.0
ブランチを作成し、それをmaster
とdevelop
の両方にマージすると、両方のブランチでコミットが失われます。
master
には、release-1.0.0
がdevelop
にマージされたコミットはありませんdevelop
には、release-1.0.0
がmaster
にマージされたコミットはありません代わりに、hotfix-1.0.1
が作成されてmaster
にマージされた後、develop
にマージされると、がマージをコミットしますは、release-1.0.0
がmaster
にマージされた以前のコミットを含みます。したがって、次のようになります。
User 'john doe' is trying to merge the following commits into 'develop' from 'hotfix-1.1.1'.
* merge release-1.0.0 to master
* merge release-1.1.0 to master
* Fix shopping cart critical bug
これが混乱しているように思える場合は、develop
が通常master
の背後にある2、3のコミットであることがわかります(ただし、理論的にはonlyが先である必要があります)メインブランチなので、これらのコミットはrelease-x.x.x
からmaster
へのマージです)。
クリーンな履歴を維持するには、これをどのように処理する必要がありますか?
私は、マスターと開発の2つの「メイン」ブランチを回避することをお勧めします。それは完全に説明されています ここ 、作者によってcactus-flow
とブランド化されています。
Git-flowとは対照的に、いくつかの点が際立っています。
私にとって最後の1つは重要です。git-flowを長期間使用した後、--no-ff
マージについて何が役に立つかまだわかりません。
ドキュメントにできるだけ近いgitflowをフォローしようとしています。 gitflowはすでに多くの多くの開発者に採用されているので、私はむしろ「hackz」のようなことはしたくないので、彼らはすでにこの単純なことの解決策を持っているはずです
私見それはあなたの大きな間違いです。可能な限りgit-flowを使用する理由はありません。それは何千ものプロジェクトで使われるかもしれませんが、あなたのプロジェクトに影響を与えません、それはそれを良くしません。
Git-flowは良い出発点ですが、逆にではなく、ツールとワークフローにそれを適応させることを考える必要があります。