版本库的分类
根据库的位置和作用,一般将库分为以下几类:
1.远程主库:位于远程服务器上,工程的主要版本。
2.远程个人库:位于远程服务器,开发者fork自远程库用于管理个人代码。
3.本地开发库:位于开发者主机上,开发者从远程个人库clone下来,开发者修改的代码先commit到此处,再push到远程个人库中,有代码管理者审核合并入主库。
开发流程
在主库已经存在的情况下,日常操作流程如下:
1.开发者从主库fork出自己的个人库
开发者使用个人账号登陆,打开项目主库页面,点击Fork将项目复制到自己的个人库中。
2.开发者将自己的个人库clone到本地,即本地库
在本地主机中打开一个空文件夹(第一次操作,后续可在代码文件夹中操作),右键选择git bash here,并使用git clone
命令从个人库中下载代码,或者使用git pull
命令拉取代码对本地代码进行更新。
下载代码后cd进入代码目录,git已经自动建立了本地库和远程库连接origin,可以使用git remote -v
查看origin对应的远程库连接。
建议新建分支进行修改,修改确认无误后再合并入master分支。
git checkout -b <branch> #-b表示新建并切换入新分支
3.开发者在开发了新代码后(包括新增和修改),先将代码commit到自己的本地库,再由本地库push到个人库
开发者可对下载的代码进行修改,保存后在git界面使用git status
命令查看更新的文件,可以看到红色标识的一系列文件显示modified。
查看无误后使用 git add .
(此时需退出VS,否则文件占用,该命令无法运行)命令将已修改文件加入候选区,此时再次使用git status
命令可看到以上文件变为绿色。
最后依次使用以下命令将修改提交到本地库和远程库:
git commit -m "注释" #""中推荐填写本次修改的内容
git push -u origin <branch> #branch为上传的个人库中分支名
4.开发者提交从个人工作库到主库的MR,代码管理者审核后,决定是否将MR合入主库
push后,在gitlab主页上可以看到create merge request(MR)按钮,点击发出MR,可将修改代码合并入master分支。
5.每个开发人员从主库pull最新代码到本地库
分支管理
- 主库缺省的master分支,是用来向生产环境发布的,所有合入的代码,原则上都必须是稳定的。
- 主库除了master分支外,还需要有一个活动分支,平时日常的开发都基于活动分支开发。即从个人库提交MR到主库时,指向的是此活动分支。活动分支测试稳定后,将其通过MR的形式,合并到master分支,同时打上tag。
- 如果软件运行过程中发现bug,则从主库的master分支中,拉出一个bugfix分支。为修复这个bug的所有开发,都基于bugfix分支。待bugfix分支开发完成,并测试稳定后,将bugfix分支以MR的方合入主库的master分支。然后删除bugfix分支。