Gitマルチブランチ開発時のmergeマージポリシー
2387 ワード
一、develop、master、hotfix合併戦略
プロジェクトは一般的にdevelop、masterの別のブランチdevelopブランチがテスト環境テストに配置され、複数の開発エンジニアが自分のcommitをdevelopブランチに提出し、テストエンジニアに渡してテストする.masterブランチはオンラインブランチで、問題のないdevelopブランチをテストし、オンラインが必要なときにmasterブランチにマージします.
masterとdevelopのコミット履歴を一致させ、developがmasterにマージされるたびに衝突しないようにし、ライン上のコードとテスト環境ループのテストが完了したコードが一致することを保証し、マージコードによるライン上の問題を回避します.
一時的にオンラインにする必要がある場合は、masterブランチに基づいてhotfixブランチを確立し、テスト後にmasterブランチにマージできます.
hotfixブランチとdevelopブランチは並列であり、hotfixブランチがmasterブランチにマージされた後、developブランチに同時にマージし、developブランチとmasterブランチのコミット履歴が一致することを保証する必要がある.
hotfixは2つのケースに分けられます.
A:hofixとdevelopブランチは同じファイルを変更しておらず、競合は発生しません 1)master :
a -> b
2)develop
a ->b -> c commit c x
3)hotfix
a->b-> c1 commit c1 y
* :*
1)master merge hotfix
master: a->b->c1
2) develop rebase master
develop: a->b->c1->c ( )
B:hotFixとdevelopブランチが同じファイルを変更し、競合が発生 1)master :
a -> b
2)develop
a ->b -> c commit c x
3)hotfix
a->b-> c1 commit c1 x
* :*
1)master merge hotfix
master: a->b->c
2) develop rebase master
develop: a->b->c1->c2
( ), , x 。commit c2 c
上記の手順に従って変更すると、developマージmasterは競合を解決する必要はありません.
tip:mergeの場合はコミットしたcommit情報を含めて、次のコマンドを使用して操作してください.これにより、履歴の表示が容易になります.git merge master --log --no-ff
二、マルチブランチA、B、C並列開発時の合併戦略
一、プロジェクト背景:
プロジェクトABブランチが同時に開発を行う場合、Aブランチ開発中に他のブランチBがオンラインになり、Bブランチオンラインバージョンがマスターに同期された場合、開発中のブランチAにオンラインバージョンを統合し、Aブランチオンライン時にBブランチのコードを上書きし、機能が後退することを避ける.
二、コマンドラインの連結手順:
1.開発ブランチAに切り替える:
git checkout【開発ブランチ】
2.開発ブランチへのマスターのマージ(Bがマスターに同期しているため、マスターをAにマージし、AにB以上のラインの最新コードが含まれていることを保証する):
git merge --no-ff master
3.連結コードをリモート・ライブラリにプッシュします.
git push origin【開発ブランチ】
1)master :
a -> b
2)develop
a ->b -> c commit c x
3)hotfix
a->b-> c1 commit c1 y
* :*
1)master merge hotfix
master: a->b->c1
2) develop rebase master
develop: a->b->c1->c ( )
1)master :
a -> b
2)develop
a ->b -> c commit c x
3)hotfix
a->b-> c1 commit c1 x
* :*
1)master merge hotfix
master: a->b->c
2) develop rebase master
develop: a->b->c1->c2
( ), , x 。commit c2 c
git merge master --log --no-ff
一、プロジェクト背景:
プロジェクトABブランチが同時に開発を行う場合、Aブランチ開発中に他のブランチBがオンラインになり、Bブランチオンラインバージョンがマスターに同期された場合、開発中のブランチAにオンラインバージョンを統合し、Aブランチオンライン時にBブランチのコードを上書きし、機能が後退することを避ける.
二、コマンドラインの連結手順:
1.開発ブランチAに切り替える:
git checkout【開発ブランチ】
2.開発ブランチへのマスターのマージ(Bがマスターに同期しているため、マスターをAにマージし、AにB以上のラインの最新コードが含まれていることを保証する):
git merge --no-ff master
3.連結コードをリモート・ライブラリにプッシュします.
git push origin【開発ブランチ】