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 新增到暫存區裡面去,不要忘記...