总体流程
流程说明
一、Fork代码到私人仓库
从公共仓库Fork一份代码在私人仓库中,从私人仓库中再Pull代码到本地开发。
Fork之后自己目录下有一个同名的项目
二、Clone私人仓库代码到本地
git clone xxxxxxx.git(私人仓库地址)
配置源地址:
git remote add upstream xxxxxxx.git(公共仓库)
使用git remote -v 查看,可以看到有upstream 和 origin
git fetch upstream;把公共仓库分支信息更新到本地
三、提交代码
提交代码的原则是先把公共仓库中的更新拉取到本地,再提交到私人仓库,在从私人仓库创建Merge Request合并到公共仓库,如果有冲突,保证冲突在本地解决掉。
git fetch upstream
git merge upstream/分支 将公共仓库中对应分支的更新同步到本地
git add .
git push origin 分支;此时是push到私人仓库中。
四、合并代码到公共仓库
在自己仓库项目下创建Merge Request,将自己修改的代码合并到公共分支上。
创建合并请求之后,通知相关人审批,并进行Codereview。
Review之后,通过请求,代码将合并至公共仓库中。
多开发分支合并流程
在以上操作流程基础上,在当前迭代任务和fixbug任务并行开发时,做一下流程约束,以保证冲突在本地解决,而不是在公共仓库上处理。
如图所示,在迭代任务开发过程中,线上历史版本有突发问题需要立即解决那从对应的历史版本之上拉取分支fixbug-xx,此时有dev和fixbug-xx两个分支同时在本地开发,则操作顺序如下:
1、当fixbug开发完成后,先从公共仓库fixbug-xx分支中的更新同步至本地,如有冲突,在本地解决冲突。
2、在将本地fixbug-xx分支代码push至私人仓库中,进而创建一个merge request,将自己的代码合并至公共仓库中。
3、fixbug-xx的修复需要同步到dev分支上,所以此时切换至dev分支,同样从公共仓库dev分支中的更新同步至本地,如有冲突,在本地解决冲突。
4、将本地fixbug-xx代码合并至dev上,如有冲突,在本地解决冲突。
5、在将本地dev分支代码push至私人仓库中,进而创建一个merge request,将自己的代码合并至公共仓库中。
PS:在将私人仓库中代码创建Merge Request意图合并更新时,必须是相同分支,不允许从origin/dev直接合并至upstream/master。
公司使用的git流程。