利用Gitlab进行代码的协作开发

0. 前提条件

Gitlab上已经存在一个repository。
在这里插入图片描述

若Gitlab上没有repository,可以自己创建一个。

1. 远程仓库创建分支

为了保证main分支不被污染,需要创建一个dev分支。(无论是否需要多人协作开发,最好都使用分支功能,main分支用于存储稳定版本,dev分支用于开发新功能)

依次点击BranchNew branch

在这里插入图片描述
在这里插入图片描述
输入Branch name后,点击Create branch。
在这里插入图片描述

2. 拉取远程仓库的(分支/代码及分支)至本地

由于此项目需要多人协作开发,因此不同开发人员会面临不同的情况:

  1. 本地有此repository,需要拉取远程仓库的dev分支
  2. 本地无此repository,需要拉取远程仓库的代码及dev分支。

2.1 本地有此repository

在本地repository打开git bash,并输入git branch -a,发现并没有Gitlab上新建的分支,这是因为本地仓库和远程仓库本质上时完全独立的,想在本地看见远程仓库的信息就应该fetch一下远程的信息
在这里插入图片描述

输入git fetch命令,然后再输入git branch -a,可以看到远程仓库新建的分支了。
在这里插入图片描述
接下来需要拉取远程分支并创建本地分支。使用如下命令

git checkout -b [本地分支名x] [shortname/远程分支名x]

在这里插入图片描述
我们可以输入git branch -a查看一下本地分支和远程分支。
在这里插入图片描述
可以看到,我们本地仓库已经有了dev分支,并且已经处于dev分支。

使用该方式会在本地新建分支x,并自动切换到该本地分支x。采用此种方法建立的本地分支会和远程分支建立映射关系。查看本地分支和远程分支映射关系的命令为git branch -vv
在这里插入图片描述
可以看到,本地的dev分支与远程仓库的dev分支之间存在映射关系;
本地main分支与远程仓库的main分支之间存在映射关系。

建立映射关系的好处是:使用git pull或者git push时就不必每次都要指定从远程的哪个分支拉取合并和推送到远程的哪个分支。

2.2 本地无此repository

在工作区打开git bash,将repository clone至工作区中。
在这里插入图片描述
在这里插入图片描述
clone完成后,进入repository。
在这里插入图片描述
输入git branch -a,可以看到远程仓库新建的dev分支。

在这里插入图片描述

接下来需要拉取远程分支并创建本地分支。使用如下命令

git checkout -b [本地分支名x] [shortname/远程分支名x]

在这里插入图片描述
我们可以输入git branch -a查看一下本地分支和远程分支。
在这里插入图片描述
可以看到,我们本地仓库已经有了dev分支,并且已经处于dev分支。

输入git branch -vv命令查看本地分支和远程分支映射关系。
在这里插入图片描述
可以看到,本地的dev分支与远程仓库的dev分支之间存在映射关系;
本地main分支与远程仓库的main分支之间存在映射关系。

建立映射关系的好处是:使用git pull或者git push时就不必每次都要指定从远程的哪个分支拉取合并和推送到远程的哪个分支。

3. 在dev分支进行协作开发

将远程仓库的代码及分支拉取至本地后,可以开始进行代码开发工作。

多人协作开发时,每个开发者都会push自己的代码至远程仓库中,因此在进行代码开发前,需要先输入git pull [remote] [branch]命令,获取远程仓库与本地 [branch]分支存在映射关系的分支的最新代码。
在这里插入图片描述

然后进行代码开发。

在这里插入图片描述
代码开发完毕后,在push至远程仓库前,输入命令git pull origin dev再次pull远程仓库
在这里插入图片描述
最后输入git push origin dev将本地dev分支push至远程仓库中与本地dev分支存在映射关系的分支。
在这里插入图片描述

关键点在于:本地开发前需要先pull一下远程仓库的代码,本地push前也需要pull一下远程仓库的代码。

4. dev合并至main分支

dev分支的代码经过检验后没问题,即可以合并至main分支。

打开Gitlab的repository界面,点击Merge requests
在这里插入图片描述
点击Creat merge request
在这里插入图片描述
确认一下merge方向是否是dev至main,根据自己的需要填写好merge信息(下图中的信息没有进行填写),最后点击Creat merge request
在这里插入图片描述
创建完merge request后,由Assignee决定是否接受merge request。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吮指原味张

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值