工作流相關(guān) - Workflows學(xué)習(xí)筆記

原文鏈接:https://www.atlassian.com/git/tutorials/comparing-workflows

集中式工作流

Paste_Image.png

一般來說,Git 的好處在于分布式的工作流,但是也可以使用傳統(tǒng)的工作流方式(如果整個(gè)開發(fā)團(tuán)隊(duì)從SVN轉(zhuǎn)Git,大家都不太熟悉分布式工作流的時(shí)候,可以考慮前期先用這種方式熟悉哦?。?/p>

講點(diǎn)理論

Git的好處( vs SVN)

  1. 每個(gè)人都有一份完整的庫的代碼,這樣每個(gè)人都可以獨(dú)立開發(fā)互不影響,隨時(shí)提交,方便的時(shí)候再和其他人的合并
  2. 有強(qiáng)大的分支和合并機(jī)制,庫之間合并起來非常方便而且最大限度容錯(cuò)

怎么做

  1. 和SVN一樣,大家都把代碼提交到同一個(gè)庫的同一個(gè)分支上(比如master或者develop),不需要其他分支
  2. 克隆這個(gè)分支到本地,在本地分支上進(jìn)行開發(fā)(可以在本地進(jìn)行獨(dú)立的提交等)
  3. push到線上

處理沖突

處理沖突.png
  1. 如果提交的本地分支和線上分支的提交記錄有不同的地方,Git會(huì)拒絕接收提交
  2. 提交之前應(yīng)該先拉一把,然后Git會(huì)保證你的所有本地變更,是基于最新的線上代碼之上的(rebasing)。這樣做的結(jié)果,是形成一個(gè)線性的歷史記錄,和SVN的工作流一樣。
  3. 如果線上的最新版本代碼和本地提交代碼有直接沖突,Git會(huì)讓你處理沖突

來點(diǎn)實(shí)踐

額...暫缺

下一步

從上面的小栗子可以看到,用Git其實(shí)是可以完全賦值SVN的使用方法的,但是,這樣做并沒有充分利用Git的分布式特性。
如果團(tuán)隊(duì)已經(jīng)適應(yīng)了集中式的工作流,但是想簡化多人開發(fā)的合作的過程,可以探索下Feature Branch Workflow —— 之前把每次提交都直接集成到主分支上,用這種模式,可以在把新特性提交到主分支之前,對(duì)要提交的代碼,發(fā)起一輪討論 —— 適合用來做code review哦!

Feature Branch Workflow

Feature_Branch_Workflow.png

熟悉了集中式之后,可以為流程中添加feature branches,這樣可以促進(jìn)合作降低開發(fā)者間的交流成本。
這種方式的核心在于,所有功能開發(fā),不能在主分支進(jìn)行,而應(yīng)該在獨(dú)立分支進(jìn)行。
這種方式,讓多人合作開發(fā)一個(gè)功能而不影響主代碼更簡單。同時(shí)也意味著,主分支永遠(yuǎn)不會(huì)包含未完成的代碼,這一點(diǎn)對(duì)持續(xù)集環(huán)境成非常重要。
這種方式,可以使用pull request方案來為提交的分支添加評(píng)論 - 讓另一個(gè)開發(fā)者有機(jī)會(huì)對(duì)你開發(fā)的東東進(jìn)行code review,也可以通過pull request的方式邀請(qǐng)別人幫你解決問題。pull request讓團(tuán)隊(duì)交流非常容易。

講點(diǎn)理論

怎么做

這種方案依然使用一個(gè)中央倉庫,master分支依然是正式分支。但是開發(fā)者不能直接提交到這個(gè)分支,而是每次做一個(gè)新功能的時(shí)候,創(chuàng)建一個(gè)新分支。這個(gè)功能分支,應(yīng)該有一個(gè)能夠自解釋的名字。

Pull Request

開發(fā)完一個(gè)功能以后,別立刻merge到master上,而是應(yīng)該新建一個(gè)pull request,讓其他開發(fā)者看看,能不能merge到master上。這樣就能保證,在你寫的代碼合并到主分支之前,其他開發(fā)者有機(jī)會(huì)review到這些change。
除此之外,還能用在代碼討論上,也就是說在開發(fā)流程的前期也可以應(yīng)用。
一旦一個(gè)pr被接受,那么發(fā)布一個(gè)功能就和集中式的差不多了。首先,需要確保本地代碼是最新的,然后把你的分支merge到主分支就好了。

來點(diǎn)實(shí)踐

額......暫缺

下一步

Feature Branch Workflow是一種非常自由的開發(fā)模式,但是它太自由了。大型團(tuán)隊(duì)開發(fā)的時(shí)候,有的時(shí)候需要需要給分支配置多種不同的角色,這個(gè)時(shí)候,Gitflow workflow就登場了!

Gitflow Workflow

Gitflow Workflow

Forking Workflow

Forking Workflow
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容