记录一个我目前工作中的git流程

1,311 阅读2分钟

Git工作流程

目的

最近换了份新工作,承担的角色有了转变,所以想优化下自己的代码工作流程,也算在公司小团队规模的开发流程上去做些事儿。

两个主要目的:

1,减少代码冲突

2,优化代码审核(codeReview)

以下基于: git GitLab

简述

基于Gitlab的Fork模式,开发人员采用MR方式提交代码,审核人员在Gitlab上审核和Merge代码

术语

  • 项目远程仓库
  • 个人远程仓库

流程

分为配置流程,代码提交流程

配置流程

主要步骤

  1. 从项目远程库Fork代码到个人远程仓库
  2. 个人本机配置个人远程仓库(origin)和项目远程仓库(upstream)
示例
  1. gitlab界面
  2. 本机命令行 下面二选一
  • 本地新仓库
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  

代码提交流程

  1. 代码发布到个人远程仓库(push)
  2. 最新代码从项目远程仓库获取(fetch+rebase)
  3. gitlab界面提交MR(Merge Request)到项目库
  4. 代码审核员审核后自动合并到项目库

注意点:

  1. 如果push有问题,强制push

高级

个人分支

新建分支

新建分支指在当前分支中开辟一个分支。

gitGraph:
options
{
    "nodeSpacing": 150,
    "nodeRadius": 10
}
end
commit
branch newbranch
checkout newbranch
commit
commit
checkout master
commit
commit
merge newbranch

步骤:
  1. 切换至目标分支

    git checkout <targetBranchName>

  2. 新建分支

    git branch <newBranch>

上面步骤也可以简化为一步

git checkout -b <newBranch>

提交分支

步骤:
  1. commit代码

    git commit -m '<message>'

  2. push 代码

    git push <remote> <localBranchName>:<remoteBranchName>

    remote remote地址 具体可以通过git remote -v查看

    localBranchName 本地的分支名

    remoteBranchName 远程的分支名(本地分之名和远程分支名可以不一致)

将远程的分支拉至本地

步骤:
  1. fetch分支

    `git fetch :

    remote remote地址 具体可以通过git remote -v查看

    localBranchName 本地的分支名

    remoteBranchName 远程的分支名(本地分之名和远程分支名可以不一致)

分支合并

merge方式,步骤:
  1. 切换至需要主分支

    git checkout master

  2. 合并分支

    git merge branch

rebase 方式
  1. 切换至主分支

    git checkout master

  2. rebase 分支

    git rebase branch