使用gitlab时多人协作流程总结

  Git诞生于2005年,大神Linus的作品,Github诞生于2008年,没有Git就没有GitHub,Github已成为全球最大的代码开源社区,注册免费用户即可在Github上免费托管开源代码,如需建立私有仓库必须付费。那么Gitlab又是什么?

   GitLab和GitHub一样属于第三方基于Git开发的作品,免费且开源(https://github.com/gitlabhq/gitlabhq 基于MIT协议),与Github类似,可以注册用户,任意提交你的代码,添加SSHKey等等。不同的是,GitLab是可以部署到自己的服务器上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发,你总不可能把团队内部的智慧总放在别人的服务器上吧?简单来说可把GitLab看作个人版的GitHub。

注意:先学习git基本命令,再看本文章,我只是根据自己所学简单介绍gitlab使用,推荐学习廖雪峰的git教程。欢迎指教本文错误的地方。

1. 创建保护分支

  在团队中使用GitLab中的Merge Request工作模式

  一般会创建一个develop分支(创建保护分支),把这个分支保护起来,大家想向develop分支提交跟新代码时,需要发起merge Request(如何发起merge request,注意要勾选最后一个选项:合并后删除该分支)。代码审核后才会合并到develop分支,保持develop分支的干净。

2. 创建自己本地分支

2.1、clone远程develop分支

# git clone xxx

2.2、新建本地分支

新建本地分支,并push到远程仓库(即开发新功能时,创建一个新的分支)

# git branch mybranch    //新建本地分支mybranch

# git checkout mybranch  //切换到mybranch分支

# git branch -b mybranch   //新建本地分支mybranch,并切换到mybranch分支

创建本地分支并关联一个远程分支otherbranch(即在已有的分支创建本地分支继续开发,并把本地分支更新到远程分支otherbranch)

# git branch mybranch origin/otherbranch   //新建本地分支mybranch,并关联到远程分支otherbranch

# git checkout mybranch  //切换到mybranch分支

# git branch -b mybranch origin/otherbranch  //新建本地分支mybranch,关联到远程分支otherbranch,并切换到mybranch分支

  新建本地分支完成后,我们就可以在develop分支的基础上在自己分支上开发了。也可以关联到其他你要继续开发的远程分支(如otherbranch)。

3. commit和push之争

  在之前用github时,在我们开发一部分功能后,想往远程仓库push时,为了避免冲突,到底是先pull还是先commit,今天终于有了答案。

  git不同于其他版本控制系统之处是git是分布式,有远程仓库和本地仓库,本地仓库没有网也可以继续工作,也可以把我们修改的代码commit到本地仓库,所以先commit后push,一个功能可以分成很多块,当我们开发完一块后,就可以commit一次,并说明这部分是做什么的,方便merge request时审核人理解你的代码。当我们完成整个功能后,进行一次push,push后发起merge request请求合并到develop分支。

# git add .  //添加所有文件,或者你可以执行添加你想添加的文件

# git commit  -am "该部分是干什么的"  //提交到本地仓库

4. 更新本地仓库和解决冲突

  在push之前,一般我们会先pull一下,这里不建议用git pull,而是用git fetch + git rebase,( 使用git fetch和git rebase处理多人开发同一分支的问题

# git fetch -p origin develop   //更新远程commit id到本地新临时分支,以及删除远程仓库已删除的分支 或者git fetch -p origin otherbranch

# git rebase  //整理commit ,“变基”

# git status  //查看状态

如果有冲突,解决冲突

# git add .  //添加

# git commit -am “解决冲突”  //解决冲突后提交

# git rebase -continue  //继续整理commit

# git status  //查看状态

如果没有冲突,把自己本地分支提交到远程仓库,或者提交到远程关联分支:

把本地新建分支push到远程仓库,并创建远程分支
develop是保护分支,无权限直接合并到develop分支,需要merge rquest把自己的远程分支合并到develop分支

#  git push --set-upstream origin mybranch   //推到远程仓库

把本地分支push到关联的远程otherbranch分支

# git push origin HEAD:otherbranch //推到远程分支

5、合并分支

# git branch -a //查看所有分支

# git branch -d mybranch  //删除分支

把mybranch合并到otherbranch

# git checkout otherbranch  //切换到otherbranch分支

# git merge mybranch  //把mybranch合并到otherbranch
  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值