[英]How to fix branches of partial directory structure in SVN to Git migration
[英]How to structure Git branches
我必須基於軟件供應商的現有源代碼設置git存儲庫來開發軟件。 源代碼會定期更新,我正在尋找最有效的方法,我想出了兩種工作模式,我很想聽聽您的意見,即哪種(或另一種)最有效情況。
總體而言,將有3個完全獨立的團隊,每個團隊都在各自獨立的代碼存儲庫中工作:A,B,C。
源代碼存儲庫/團隊A是基礎供應商代碼所在的位置。 源代碼存儲庫/團隊B是基於第三方的供應商代碼退出和擴展的地方。 我正在嘗試設置的源代碼存儲庫/團隊C,它應該基於A + B和我們自己的擴展。
每當存儲庫A發生更改時,來自團隊B的人員就會將其拉入其存儲庫中,進行集成並使其可用於團隊C。
B團隊也可以自行發布獨立發行版(A團隊不做任何更改),以供C團隊使用。
對於團隊C,我將設置存儲庫單獨的分支:
master
TeamA
TeamB
develop
分支TeamA和TeamB將由我們管理(團隊C)-每當我們從團隊A和B收到代碼並將它們合並到開發中時,我們都會自己更新它們。
目的是能夠了解我們在TeamA和TeamB之間的差異(開發)(以及TeamA和TeamB之間的差異),並且最容易地將團隊A和B的更改集成到開發中。
我想知道是否設置以下結構是否有任何區別:
1)使所有分支都基於母版
master
TeamA
TeamB
develop
或2)遵循分支的父子結構
master
TeamA
TeamB
develop
我想知道這是否有實際的區別。
過去有沒有人遇到過類似情況,您會推薦哪種方法?
在Git倉庫中,每個分支都是獨立工作的。 因此,您提供的兩個結構實際上與其他結構相同。 而且您的分支機構可以為您的團隊工作(團隊C)。
您還可以免除repoC中的TeamA
和TeamB
分支,從repoA和repoB中提取更改以直接develop
分支:
git remote add -f teamA <URL for repoA>
git checkout develop
#Use git fetch teamA and git fetch teamB when there has new changes on repoA and repoB
git pull teamA/master --allow-unrelated-histories
git pull teamB/master --allow-unrelated-histories
#After making changes and commit changes on develop branch
git checkout master
git merge develop
注意:無論使用哪種分支結構,您都應該注意到合並沖突,因為三個存儲庫包含相同的文件/代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.