一 、 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分為兩種情況:
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分支上線版本已同步(merge)到master,則須合併已上線版本到正在開發的分支a上,避免a分支上線時覆蓋b分支的**,導致功能倒退。
二、命令列合併步驟:
1.切換到開發分支a:
git checkout 【開發分支】
2.合併master到開發分支(因為b已經同步到master,於是將master合併到a,保證a上涵蓋b以上線的最新**):
git merge --no-ff master
3.將合併後**推送到遠端庫:
Git分支開發模式
這篇部落格將主要介紹團隊中如何使用git分支模式進行開發。先介紹一下分支 分支分為遠端分支和本地分支。建立版本庫時,缺省會有乙個master遠端分支,我們轉殖到本地,於是建立了本地master分支。預設情況下,乙個遠端分支,乙個本地分支,在本地寫 寫完之後更新到遠端分支。我們稱這種模式為單分支模式。...
git 分支開發規範
git 進行 管理和開發時,分支的管理也是非常必要的 1 master分支 部署生產環境的分支,這個分支只能從其他分支合併,如develop release hotfix,不能在這個分支直接修改 2 develop分支 我們的主開發分支,是乙個穩定的版本,通常由release分支合併過來,通常發到s...
Git切換分支開發
入職第一家公司做開發的時候使用的專案版本管理工具是svn,公司內部搭建的伺服器 在第 二 第三家公司做開發的時候,使用的專案版本管理工具是git,現在大多數公司使用的也是git。剛進入公司的時候首先做的都是拉取專案 並且一般都需要切換到分支進行開發,對於不少新人或者是沒有使用過git的人來說,可能會...