11

マスタープロダクションブランチがあります。マスターブランチには現在の開発が含まれ、プロダクションブランチにはサーバーで実行されているものが含まれます。時々、両方のブランチに適用しなければならない重要なバグ修正があります。

現在、マスターブランチでコミットを作成した後、コミットを選択しています。ただし、これにより、ブランチをマージするときにマージの競合が発生することがあります。代替案はありますか?

4

3 に答える 3

12

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 ではありません – このワークフローをダギー フィックスと呼びます)

于 2012-08-29T16:20:01.353 に答える
4

ホットフィックスごとに個別のブランチを作成し、開発ブランチと本番ブランチの両方にマージします。

gitflow モデルは一般的に非常にうまく機能します。これを確認することをお勧めします: http://nvie.com/posts/a-successful-git-branching-model/

マスター ブランチは開発ブランチに似ており、プロダクション ブランチはマスターに似ています。

ここに画像の説明を入力

于 2012-08-29T16:21:11.413 に答える
3

Gitflow を使用できます。「ホットフィックス」がシナリオを処理すると思います。

于 2012-08-29T16:21:46.033 に答える