Gitlab fork and code review
1、CodeReview的目的
CodeReview的目的是提升代码质量,尽早发现潜在缺陷与BUG,降低修复成本,同时促进团队内部知识共享,帮助更多人更好地理解系统。
2、git fork项目合作流程
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