前言
之前一直使用的事单个仓库多人开发的模式,仓库添加开发者开发权限,开发者可以直接往仓库里推送代码,创建分支,合并分支。这种情况在多人同时操作一个仓库的话造成管理混乱。还有就是每个人开发都可以自己写一些测试代码,在提交代码的时候可能会把测试代码都提交上去,即使提交代码有review功能,也只能在合并分支的时候才能做区分哪些合并哪些不合并。所以就有升级的使用方式,主仓和私仓。
主仓和私仓
- 主仓,就是中央主仓库,公司最新和稳定的代码都是在主仓里,主仓专人管理,每次代码合并都是其他开发者提交合并请求,管理者review代码完才合并进主仓。
- 私仓就是开发者的开发环境仓库,这些仓库的代码是从主仓fork下来的代码,当然可能fork的只是主仓的部分分支,不一定要所有分支,可以只关注自己开发的内容就可以。
开发流程
简单说一下这个代码的管理和开发流程
- 产品提交了一个需求,前期需求都评审完开始进入开发阶段
- 主仓管理员创建开发分支
- 分配到的任务开发者私仓 fetch主仓代码同步主仓的分支
- 任务开发者checkout主仓分支到本地进行代码开发
- 开发完成提交的任务开发者私仓
- 提交合并请求到主仓
- 主仓管理者review代码,并合并代码到主仓
- 自动化打包给到测试
- 测试反馈问题,开发者修改,重复5-8
- 测试完成产品验收
- 主仓管理者合并代码到master,打包发版
上代码
首次fork主仓
- 使用gitlab或者github都可以直接fork主仓的代码到自己的私仓(自己用户下的仓库)
- git clone私仓代码到本地
git clone <私仓git地址>
- 本地创建主仓关联
git remote add <主仓标识 以下用center> <主仓git地址>
- 查看分支关系
git remote -v
操作无误的话会有
center git主仓地址(fetch)
center git主仓地址(push)
origin git私仓地址(fetch)
origin git私仓地址(push)
以下适用非首次fork
- 查看任务任务分支
git branch -a
可以看到私仓和主仓的所有远端分支
假设主仓的任务分支是 feature/task_211
就能看到
remotes/center/feature/task_211
- 将主仓任务分支check到本地分支
git checkout -b feature/task_211 center/feature/task_211
成功后本地就有feature/task_211 分支 并且是同步center的任务分支
- 开始开发开发开发
write fuck code
- 开发有进度就可以commit 但是是提交到自己的私仓中
git commit -m "balabla"
git push origin
这样就成功提交到自己的私仓
- 任务都开发完,要提交测试了,提交合并请求到主仓
这个在gitlab平台可以新建pullrequest github也行
然后又问题修复就循环上面改代码 提交请求的操作
剩下打包的就交给主仓管理者把~~~
网友评论