Gitlab fork and code review
1、CodeReview的目的
CodeReview的目的是提升代碼品質,盡早發現潛在缺陷與BUG,降低修複成本,同時促進團隊内部知識共享,幫助更多人更好地了解系統。
2、git fork項目合作流程
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL90TQOpXSU1kdk1mYsFjMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLxkTNwITMyETMyATMwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
1、fork項目:從其他人的項目A中fork一份到自己github或者gitlab的項目目錄下
2、clone項目: clone一份自己的項目到本地 git clone xxxxxxx.git
3、修改遠端項目路徑:
添加:git remote add upstream xxxxxxx.git
修改:git remote set-url origin <url>
删除:git remote rm origin
4、使用git remote -v檢視: 可以看到有upstream 和 origin
3、源項目與自己的本地代碼進行合并git pull upstream
或者git fetch upstream git merge upstream
4、修改本地項目代碼之後,使用git add .然後送出git commit -m "送出的資訊"将修改的代碼合并
5、送出代碼到自己的遠端項目中:git push origin master
6、通過pull request送出到他人項目中:在自己的github上找到pull request;如果是gitlab,找到merge request建立将自己修改的代碼推送到原項目進行稽核。
7、分支的使用
git branch 檢視一下目前分支
git branch xx 建立一個xx分支,但是不會切換到上面去
git checkout xxxx 切換到xxxx分支上面
git checkout -b xxx 表示建立并切換到xxx分支上面
get merge xx 合并xx分支到目前的分支上面
git branch -d xxx 删除xxx分支
3、管理者配置工程權限(私有雲工程為例)
(1)設定merge request settings 權限
(2)設定分支保護,不允許任何角色push,隻允許masters merge code
(3)設定Members 權限,将普通開發者設定為developer,項目組長設定為master
通過以上步驟的設定,所有人都不能直接push代碼到私有雲遠端倉庫
4、開發者開發流程(私有雲工程為例)
(1)打開私有雲工程的詳情界面,點選fork按鈕,fork出個人遠端倉庫
備注:後面分别稱為私有雲遠端倉庫和個人遠端倉庫和個人本地倉庫
這樣就有了個人遠端倉庫:
(2)去個人本地倉庫修改遠端倉庫位址最後結果如下:
(3)在本地修改代碼,并送出到自己的本地遠端倉庫
(4)gitlab上打開個人遠端倉庫,并發起merge request 請求
選擇倉庫和分支
填寫merge request 資訊 ,标題填寫本次合并代碼修改内容
描述中@需要code review的其他同僚,assignee 中選擇最終合并的代碼的master
(5)你本人,其他同僚都可以在私有雲遠端倉庫看到這次merge request,其他同僚可以針對你的代碼提出問題
或者沒有疑問,添加已閱
(6)當有問題時,代碼不能合并,你需要解決問題,并在gitlab上回複解決。
(7)所有問題都解決,并且同僚都有閱讀過。目前小組masters可以合并代碼到私有雲遠端倉庫
5、developer和master 進行code review
(1)gitlab上看到merge request或者todos,然後點開進行codereview
(2)針對修改的代碼提出問題,或者在discussion添加已閱
(3)大家都完成codereview後,master merge code