项目组GitLab使用规范
Master和Developer。主仓库中受保护的分支只有Master成员可以处理代码合并Merge Request和push。
:位于服务器上代码主仓库,常驻分支master和hotfix,分支均受保护,只有从开发者个人远程仓库发起Merge Request(下文简称MR)才可以进行代码更新。
:由MAIN fork而来,位于服务器上个人项目下。
:由开发人员从ORIGIN clone而来,位于本地,用于代码开发。后续通过pull/push操作保持LOCAL与ORIGIN的同步。同时,在LOCAL中设置upstream为MAIN,然后通过fetch upstream来获取MAIN的代码。
- Master新建代码主仓库MAIN、添加项目成员。
- Developer从主仓库fork一份到自己的个人远程仓库ORIGIN。
- Developer从个人远程仓库clone代码到本地,建立本地仓库,同时将主仓库MAIN设置为本地仓库LOCAL的upstream
- 在本地仓库进行开发,需要提交代码时,按照如下步骤:
Commit:提交代码到本地仓库
Fetch:获取主仓库的更新,同步到个人本地仓库
Merge:合并主仓库的代码和本地的开发代码。代码会自动合并,但如果有冲突,需手动合并代码解决冲突
Push:提交代码到个人远程仓库
Merge Request:在GitLab的个人主页,发起Merge Request请求将个人远程仓库代码合并到主仓库的对应分支
5.处理Merge Request请求,进行code review。如果一切正常,最终合并到主仓库,打Tag上线。如果有问题,则拒绝Merge Request,要求修改。
- Master合并主仓库的master分支的v0.1至hotfix分支。
- Developer成员拉取主仓库的hotfix分支,按照代码开发的步骤4进行开发。修复完成后提交代码并发起merge request,请求合并个人远程仓库的hotfix分支至主仓库的hotfix分支
- Master成员处理Merge Request请求,进行code review,最终合并hotfix分支至master分支
git clone git@gitlab.aa.com.cn:012829 /test .git |
## Commit message需要注意规范,详见下一节
#XYPJ-1111# message example” |
## 建立本地仓库时,设置本地仓库的upstream为主仓库 git remote add upstream git@gitlab.aa.com.cn:cams /test .git ## 查看remote信息
v ## 结果类似如下:
/test .git (fetch)
/test .git (push)
/test .git (fetch)
/test .git (push)
## 之后代码开发时的操作 ## fetch主仓库代码到本地(只是获取,还未合并) git fetch upstream ##本地代码切换到master分支(如果已经在master分支就跳过这一步),然后合并主仓库的master分支到本地的master分支 git checkout master git merge upstream /master ## 提到代码到个人远程仓库 git push origin master ## 注意:如果是bug修复,则以上fetch/merge/push都是hotfix分支 |
commit message必须是“#XYPJ-2199# corrent commit message example”格式,与之前SVN代码提交时一样。
Author必须是K开头的或者0开头的,务必设置git的user.name为工号(git config --global user.name "012829")
http://wiki.aa.com.cn/pages/viewpage.action?pageId=22275447
##修改最近一次commit的author git commit --amend --author= "012829<wangbin012829@htsc.com>" ##修改最近一次commit的commit message
"#XYPJ-2179#初始化SV代码仓库" |
- 注意与主仓库的同步,保持一定的fetch频率。防止出现长时间不同步而冲突严重的情况。
- 如果发起MR时发现有冲突,可自己撤回手动解决冲突后再重新发起。
- 向主仓库发起MR不要过于频繁,一般以JIRA中一个任务为单位,任务完成提交代码并向主仓库发起MR
《Git基本教程》:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
《Git常用命令》:http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html
尤其要重视分支和远程仓库这两个概念
《分支管理》:http://www.ruanyifeng.com/blog/2012/07/git.html
《远程仓库操作》:http://www.ruanyifeng.com/blog/2014/06/git_remote.html