hi,team,咱們目前使用的是git作項目管理,它是很是優秀的版本控制工具,使用好能夠極大提升咱們團隊開發效率。可是,出現沒必要要的衝突和代碼丟失就要費時解決這些可避免的問題。html
這個流程圖是應用Git Flow的標準流程,能夠看到,不一樣的分支在產品研發和上線的不一樣階段有不一樣的做用,扮演了不一樣的角色。
git
咱們團隊人數很少,按照實際須要想了這樣一套流程
工具
結合圖片,簡單介紹一下不一樣分支的職責。
性能
1.Master分支
這個分支是發佈到生產環境的代碼,這個分支只能從其餘分支合併,不能在這個分支直接修改。
2.Develop分支
這個分支是主開發分支,包含全部要發佈到下一個Release的代碼,這個主要合併自其餘分支,好比Feature分支。
3.Feature分支
Feature 分支主要用來開發一個新的功能,一旦開發完成,合併回Develop分支,而且進入下一個Release,Feature分支能夠選擇刪除或者保留。
4.Test分支
當須要發佈一個新Release的時候,基於Develop分支建立一個Release分支,Release分支在測試過程當中可能會修改,完成Release後,合併到Master和Develop分支。
5.Hotfix分支
當在Production發現新的Bug時候,須要建立一個Hotfix分支, 完成Hotfix後,合併回Master和Develop分支,因此Hotfix的改動會進入下一個Release。學習
Master分支是線上穩定分支,沒有bug,沒有很大的性能問題的代碼,做爲根基。每次上線以後進行一次新的拉分支操做。測試
Test一般用做測試分支,這是由Develop分支開發好以後合併到測試,統一交由測試部門測試的代碼,該分支只
在相似於線上的環境運行。Test分支發佈後出現問題,不要合併主分支,直接在Test分支修改在測試,Develop分支代碼污染,經過測試以後推送到其餘分支上。網站
Develop分支是開發應用的主分支,多人開發環境能夠第一次統一代碼版本的規範,以子分支的方式讓各開發人員創建本身的分支,必須天天或者短時間進行合併,若是修改公共代碼,請及時告知相關分支下開發人員,有效避免大規模重途。spa
全部的功能開發都在Feature分支進行,而後合併到Develop分支,建立本身的分支開發時統一規範,例如:/user/zy/20180318。不相關的文件不要往主分支上push,由於這有可能讓別人的代碼環境遭到破環,在提交時就一直報錯,衝突以內的,解決起來很麻煩。.net
//新建分支 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的操做。能夠參考該網站:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013744142037508cf42e51debf49668810645e02887691000版本控制
使用以下Git命令查看全部遠程分支:
git branch -r
使用以下命令:
git checkout -b 本地分支名x origin/遠程分支名x
$ git checkout -b hhhh master
以master爲模板,建立hhhh分支,而且切換到hhhh分支
使用該方式會在本地新建分支x,並自動切換到該本地分支x。