一開始的時候,master分支是一條線,Git用master指向最新的提交,再用HEAD指向master,就能肯定當前分支,以及當前分支的提交點:工具
每次提交,master分支都會向前移動一步,這樣,隨着你不斷提交,master分支的線也愈來愈長。測試
當咱們建立新的分支,例如dev時,Git新建了一個指針叫dev,指向master相同的提交,再把HEAD指向dev,就表示當前分支在dev上:spa
在dev分支新提交一次後,dev指針往前移動一步,而master指針不變:debug
dev分支的工做完成,咱們就能夠切換回master分支。切換回master分支後,如今把dev分支的工做成果合併到當前分支master上:指針
master 基於線上代碼的分支;
develop 公共自測分支,提交測試環境的分支;
publish 公共提測分支,版本任務提測發包分支;
debug bugfix 解決線上問題的分支,命名不固定,完成後單獨自測,提測,解決上線後直接合併到master,全部的task任務都從master中提取,每次master更新後都須要從新把master合併到本身分支。ip
建立task分支:
切換當前分支爲master,而且確保代碼爲最新,
在master上建立新分支task,
之後每次master更新都須要更新本身的task任務。開發
task合併到 develop | publish:
首先確保本身分支已經更新了最新的master分支,
切換當前分支爲develop分支,而且拉取遠程develop分支更新,
在工具中選中task分支,右擊合併task分支,
若是出現衝突,則解決衝突,以後push到遠程,這樣develop上就有了task分支。it
使用master分支保持線上最新代碼;
使用Release分支進行合併版本迭代任務;
使用hotfix分支進行修復線上bug或者須要緊急上傳某些需求。
臨傳/固傳均當從master分支拉取(pull)並建立本身的開發分支(feature),在本身的分支進行開發;研發代碼寫完後,只須要推送(push)代碼到本身的分支;
合併請求:臨傳默認目標分支爲hotfix分支; 固傳默認目標分支爲Release分支。ast
1.基於master分支創建本身的開發分支,例如xhh_master,master分支更新後,須要把master分支合併到xhh_master;
2.將開發分支xhh_master合併到develop分支;
3.便於解決衝突:在develop分支上新建測試分支xhh_develop,從測試分支拉取遠程的develop分支和開發分支xhh_master;
4.將測試分支xhh_develop合併到develop分支;
5.測試過程當中出現修改代碼在開發分支xhh_master上更改,推送到遠程xhh_master,而後切換到測試分支xhh_develop,拉取開發分支xhh_master的代碼,完成後把xhh_develop合併到develop分支;
6.上線前將開發分支xhh_master合併到release或hotfix。class