3 つの主要なブランチを持つ単純なワークフローがあります。
staging
つまり、テスト環境
master
つまり、本番環境
dev/XXX
XXX はチケット番号です。
- クライアントはチケットをログに記録します
- ブランチを作成します。
dev/2332
- 作業 + コミット + プッシュ
- 準備ができたら作業をマージします
staging
- クライアントが作業を承認する
staging
- 作業をマージし
master
、チケットを本番環境にデプロイします
問題:
複数の開発者がそれぞれdev/XXX
のブランチで作業している場合。にマージするstaging
と、競合が発生することがあります。ステージングとプッシュでこれらの競合を修正します。
問題は、クライアントがそれらの特定のチケットを承認し、作業を にマージするときにmaster
、競合を再度修正する必要があることです。
重要:
- 未承認のチケットのため、ステージングをマスターにマージできません
- デフォルトではすべてのブランチが最新のマスターから作成されます
- 複数のチケットが同時に開発されていますが、承認されたときに展開されます
- 競合を回避するためのマスターからのリベースは、作業が承認されて既に展開されている場合にのみオプションです
- 未承認のチケットがあるため、ステージングからのリベースはオプションではありません
この問題を解決する方法についてのアイデアはありますか? 私たちのワークフローに欠陥はありますか? いくつかの git ハックがありませんか?
基本的に同じことは二度と繰り返したくない
ありがとうございました