マスターとプロダクションブランチがあります。マスターブランチには現在の開発が含まれ、プロダクションブランチにはサーバーで実行されているものが含まれます。時々、両方のブランチに適用しなければならない重要なバグ修正があります。
現在、マスターブランチでコミットを作成した後、コミットを選択しています。ただし、これにより、ブランチをマージするときにマージの競合が発生することがあります。代替案はありますか?
マスターとプロダクションブランチがあります。マスターブランチには現在の開発が含まれ、プロダクションブランチにはサーバーで実行されているものが含まれます。時々、両方のブランチに適用しなければならない重要なバグ修正があります。
現在、マスターブランチでコミットを作成した後、コミットを選択しています。ただし、これにより、ブランチをマージするときにマージの競合が発生することがあります。代替案はありますか?
bugfix-a
と のマージ ベースに新しいブランチを作成できます (これをmaster
と呼びましょう)。production
git checkout -b bugfix-a $(git merge-base master production)
そのブランチにバグ修正を適用します
>>/path/to/file echo 'this fixes the bug'
git add /path/to/file
git commit -m 'important bugfix'
次に、この新しいブランチを master と production の両方にマージします。
git checkout master
git merge bugfix-a
git checkout production
git merge bugfix-a
そうすれば、後で master と production をマージできるはずで、Git はどのコミットを選択するかを判断するのに十分なほど賢くなります。
(モノトーン – はい、Git ではありません – このワークフローをダギー フィックスと呼びます)
ホットフィックスごとに個別のブランチを作成し、開発ブランチと本番ブランチの両方にマージします。
gitflow モデルは一般的に非常にうまく機能します。これを確認することをお勧めします: http://nvie.com/posts/a-successful-git-branching-model/
マスター ブランチは開発ブランチに似ており、プロダクション ブランチはマスターに似ています。
Gitflow を使用できます。「ホットフィックス」がシナリオを処理すると思います。