Git工作流程
目的
最近换了份新工作,承担的角色有了转变,所以想优化下自己的代码工作流程,也算在公司小团队规模的开发流程上去做些事儿。
两个主要目的:
1,减少代码冲突
2,优化代码审核(codeReview)
以下基于: git GitLab
简述
基于Gitlab的Fork模式,开发人员采用MR方式提交代码,审核人员在Gitlab上审核和Merge代码
术语
- 项目远程仓库
- 个人远程仓库
流程
分为配置流程,代码提交流程
配置流程
主要步骤
- 从项目远程库Fork代码到个人远程仓库
- 个人本机配置个人远程仓库(origin)和项目远程仓库(upstream)
示例
- gitlab界面
- 本机命令行 下面二选一
- 本地新仓库
git clone http://git.chinacloud.com.cn/<个人名字>/jdsbu_source.git
git remote add upstream http://git.chinacloud.com.cn/JDSBU/jdsbu_source.git
- 本地旧仓库
git remote add upstream http://git.chinacloud.com.cn/JDSBU/jdsbu_source.git
git remote set-url origin http://git.chinacloud.com.cn/<个人名字>/jdsbu_source.git
代码提交流程
- 代码发布到个人远程仓库(push)
- 最新代码从项目远程仓库获取(fetch+rebase)
- gitlab界面提交MR(Merge Request)到项目库
- 代码审核员审核后自动合并到项目库
注意点:
- 如果push有问题,强制push
高级
个人分支
新建分支
新建分支指在当前分支中开辟一个分支。
gitGraph:
options
{
"nodeSpacing": 150,
"nodeRadius": 10
}
end
commit
branch newbranch
checkout newbranch
commit
commit
checkout master
commit
commit
merge newbranch
步骤:
-
切换至目标分支
git checkout <targetBranchName> -
新建分支
git branch <newBranch>
上面步骤也可以简化为一步
git checkout -b <newBranch>
提交分支
步骤:
-
commit代码
git commit -m '<message>' -
push 代码
git push <remote> <localBranchName>:<remoteBranchName>remote remote地址 具体可以通过
git remote -v查看localBranchName 本地的分支名
remoteBranchName 远程的分支名(本地分之名和远程分支名可以不一致)
将远程的分支拉至本地
步骤:
-
fetch分支
`git fetch :
remote remote地址 具体可以通过
git remote -v查看localBranchName 本地的分支名
remoteBranchName 远程的分支名(本地分之名和远程分支名可以不一致)
分支合并
merge方式,步骤:
-
切换至需要主分支
git checkout master -
合并分支
git merge branch
rebase 方式
-
切换至主分支
git checkout master -
rebase 分支
git rebase branch