Git Flow Git團隊協作最佳實踐

2021-09-23 18:04:32 字數 3056 閱讀 5752

git是乙個很好的版本管理工具,不過相比於傳統的版本管理工具,學習成本比較高。

實際開發中,如果團隊成員比較多,開發迭代頻繁,對git的應用比較混亂,會產生很多不必要的衝突或者**丟失等。

就像**需要**規範一樣,使用git進行**管理同樣需要乙個清晰的流程和規範, git flow就是乙個被廣泛認可的git使用最佳實踐。

git flow是vincent driessen提出的乙個分支管理的策略,

應用這個規範可以使得版本庫的演進保持簡潔,主幹清晰,各個分支有不同的職責,在很大程度上減少衝突的產生。

git flow通過對分支的管理,實現版本迭代的清晰。

這個流程圖是應用git flow的標準流程,可以看到,不同的分支在產品研發和上線的不同階段有不同的作用,扮演了不同的角色。

結合,簡單介紹一下不同分支的職責。

1.production分支

這個分支是發布到生產環境的**,這個分支只能從其他分支合併,不能在這個分支直接修改。

2.develop分支

這個分支是主開發分支,包含所有要發布到下乙個release的**,這個主要合併自其他分支,比如feature分支。

3.feature分支

feature 分支主要用來開發乙個新的功能,一旦開發完成,合併回develop分支,並且進入下乙個release,feature分支可以選擇刪除或者保留。

4.release分支

當需要發布乙個新release的時候,基於develop分支建立乙個release分支,release分支在測試過程中可能會修改,完成release後,合併到master和develop分支。

5.hotfix分支

當在production發現新的bug時候,需要建立乙個hotfix分支, 完成hotfix後,合併回master和develop分支,所以hotfix的改動會進入下乙個release。

我們在應用git flow的時候,也遇到了一些問題,比如開發結束後,在develop分支進行merge開發分支操作,出現衝突如果不能很好的解決,容易對develop分支的**造成汙染。

下面是實際開發中使用的流程,在feature分支上合併develop**,然後合併到develop分支上,流程更加清晰,衝突優先在開發分支解決。

乙個開發人員典型的提交流程:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

//新建分支

git checkout develop

git pull origin develop

git checkout -b myfeature

//在分支上開發

git add ***

git commit -m"*****"

//在分支開發過程中合併develop分支到本分支(先把自己的工作commit到本地)

git checkout develop

git pull origin develop

git checkout myfeature

git merge develop

(如果沒有衝突,就繼續開發,如果有衝突,執行下面過程)

首先在本地解決衝突,再把衝突解決commit

git add ***

git commit -m"*****"

//在分支開發結束,需要將本分支合併到develop分支(先把自己的工作commit到本地)

git checkout develop

git pull origin develop

git merge myfeature

(如果沒有衝突,就推送到遠端)

git push origin develop

(如果有衝突,則解決衝突,再commit,並推送到遠端:)

git add ***

git commit -m"*****"

git push origin develop

應用git flow的目的是更好的進行版本管理和持續整合,有些細節並不一定要遵循這個模型,可以根據團隊規模進行簡單的調整,適合的才是最好的。

Git Flow,Git團隊協作最佳實踐

git是乙個很好的版本管理工具,不過相比於傳統的版本管理工具,學習成本比較高,實際開發中,如果團隊成員比較多,開發迭代頻繁,對git的應用比較混亂,會產生很多不必要的衝突或者 丟失等。就像寫 需要 規範一樣,使用git進行 管理同樣需要乙個清晰的流程和規範,git flow就是乙個被廣泛認可的git...

git團隊協作流程

開發者 開始工作前 git checkout master git pull git checkout b branchname 工作中 git add git commit m message 工作完畢 git push 管理者 自己寫 開始工作前 git checkout b branchnam...

git 團隊協作寶典

1 先進入專案資料夾 通過命令 git init 把這個目錄變成git可以管理的倉庫 git init git config user.name github使用者名稱 git config user.email 郵箱 2 把檔案新增到版本庫中,使用命令 git add 新增到暫存區裡面去,不要忘記...