如何使用gitlab的flow以及代碼review

wykl086 8年前發布 | 29K 次閱讀 GitLab Git 版本控制系統

來自: http://mojito515.github.io/blog/2016/03/09/ru-he-shi-yong-gitlabde-flowyi-ji-dai-ma-review/

Git工作流

我們在工作中經常用到git來管理自己的代碼,也會涉及到多人協作的場景, 被廣泛使用的三種工作流如下:

  • Git flow

  • Github flow

  • Gitlab flow

以下只簡單總結三種flow的特點和弊端,具體的介紹和比較請移步阮一峰老師的文章 《Git工作流》

Git flow

典型的長期維護master分支和develop分支,因為是FDD(功能驅動開發),所以會在協作開發中衍生出 功能分支(feature branch)、補丁分支(hotfix branch)、預發版分支(release branch),完成之后會合并到develop或者master分支,之后刪除。優點是清晰可控,但這個模式是基于“版本發布”的,目標是一段時間產出一個新版本,不適合“持續發布”的網站開發。

Github flow

只有一個master長期分支,需要協同的人可以fork代碼(其實就是新建了一個自己的分支,并且pull到了master上的代碼),當你的功能需求代碼完成之后,或者需要討論的時候,就向master發起一個pull request。通知到別人評審、討論、review你的代碼,方便的是,在request提交之后評審的過程中,你還可以提交代碼。等到你的request被accept,分支會合并到master,重新部署后,你原來的那個分支就可以刪除啦。缺點是有時你的產品發布的代碼版本和你master最新的版本并不是一個(比如因為蘋果審核需要時間,那么你的代碼就需要另一個分支來保留線上版本)。

Gitlab flow

引入了“上游優先”(upsteam first)的原則。只存在一個主分支master,它是所有其他分支的"上游"。只有上游分支采納的代碼變化,才能應用到其他分支。版本發布"的項目,建議的做法是每一個穩定版本,都要從master分支拉出一個分支。使用gitlab建立group project,可以將成員全部添加進小組中,每個人的提交都以分支合并進master分支的方式進行,我們可以將master設置成protected branch,這樣就做到了強制代碼review的機制,利于提升代碼的質量。Issue 用于 Bug追蹤和需求管理。建議先新建 Issue,再新建對應的功能分支。

Gitlab如何使用

首先,在gitlab的console中創建工程,創建好后會有如下圖的命令提示,告知你怎樣在本地創建代碼項目并push(使用sourcetree更簡單):

項目創建完成之后,給項目添加成員:

把master分支設置成受保護分支,這樣成員在提交代碼的時候,只能先提交merge request(強制做代碼review):

在本地,以developer的身份push代碼,會顯示不成功:

正常流程中,是先本地從master上拉取新建分支:

當有代碼需要提交push的時候,在gitlab的console中創建merge request 完成代碼向master分支的提交:

負責review的小伙伴可以對代碼進行評論,在accept之前,該分支中再次push的commit都歸屬于這次merge request。accept之后,分支自動合并到master分支中(可以勾選直接刪除merge的功能分支):

至此,一次完整的代碼提交過程就完成了。當然,在項目上線之后,會有“下游”的分支,例如 生產版本的分支、預生產版本的分支也會加入到protected branch的行列。

</div>

 本文由用戶 wykl086 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!