初识git · 多人协作

发布于:2024-10-17 ⋅ 阅读:(4) ⋅ 点赞:(0)

目录

前言:

多人协作一

多人协作二


前言:

git从发布以来,强大的功能有版本回退以及分支管理,那么分支管理用来不仅是为了维护master的,更多的是多人协作的一种代表,所以多人协作这一章节,基本上说的就是我们如何使用多分支来实现一个团队开发功能。

本文的目标有两个:

一个是两个分支的情况下,master分支和dev分支,两个开发者共同在dev分支下开发两段代码,为了方便阐述,这里让a开发者添加Hello world,b开发者添加Hello git即可。

另一个是三个分支的情况下,a b拥有自己的独立分支,开发完自己的工作之后,共同合并到master分支上即可。

那么话不多说,直接进入到正题部分。


多人协作一

首先,我们创建仓库的界面自然是可以跳过的,所以我们使用上篇文章创建的仓库->linux,

该仓库除了一个code目录,什么也没有,我们将file.txt作为开发的文件:

那么第一个问题,我们自己演示这个过程的时候,如果创建两个开发者呢?

所以我们需要在linux环境下创建一个,在windows环境下再克隆仓库:

我们使用https协议创建,使用.ssh还需要配置一下下,有点点麻烦。

此时仓库的内容就出来了,那么我们还需要创建分支,这里可以直接在远端创建一个分支,然后在本地仓库进行连接即可:

在gitee的分支界面就可以创建分支,名称不妨取为dev。

那么现在的第一个问题,本地的仓库没有远程的分支怎么办?所以我们需要pull一个分支下来:

pull之后,使用-a选项,可以看到除了本地分支之外的远程分支,-r是直接看到远程的分支,-r remote的意思。现在分支有了,但是本地的分支还没有,所以我们应该创建本地的dev分支:

那么光创建是不可以的,因为本地分支和远程分支dev是没有连接上的,所以使用命令checkout后面加上一个origin/dev即可。此时两个分支就连接上了。另外的一个开发者同理:

好了,两个开发者的分支工作已经做好了,还差一点,我们将file.txt文件传过去,然后在开发者2上pull一下:

这里肯定是有同学有问题的,因为git push 后面的分支名称呢?这是因为dev分支本地和远程的是连接在一起的,所以我们可以省略后面的git  push origin master:master的origin后面的部分了。

那么开发者1push了,开发者2pull一下就就可以了:

那么现在看看Gitee里面的情况如何:

需要注意的是,我们要切换分支才能查看到新传的file.txt,因为master分支是没有merge的。

现在多分支的情况已经准备好了,就准备开发了。

首先,我们切换到开发者1并且新增加内容:

常规的三部曲就完成了,此时切换到gitee部分查看:

dev分支下的开发者1已经完成了对应的工作,那么切换到开发者2并完成对应的工作:

需要注意的是,windows下可没有vim哦,所以我们直接用记事本打开就可以了:

此时修改完成,那么进入到三部曲环节:

并且也是不出意外的报错了,此时发生的并不是合并冲突,而是因为开发者1push之后导致开发者2的本地和远程并不同步,所以先pull一下,此时就会出现合并冲突了:

我们希望的出现了,那么我们解决冲突即可:

冲突解决完毕。

重新进行三部曲,这里不要忘记,merge冲突之后需要重新add commit等:

那么此时查看Gitee情况:

符合条件。

那么最后的情况是我们需要和master合并:

此时有一个好习惯是将切换到master分支的时候,再pull一下,保证master的代码情况是最新的,此时到dev分支先和master分支进行合并,这也是一个好习惯:

但是现在远端的可是没有push哦,所以还需要推送到远端:

那么dev分支就没用了,删除即可。

可是删除了远程分支依旧存在,所以,我们可以使用指令git remote show origin是可以看到远端和本地分支的关系的,那么使用命令git remote prune origin就可以删除了,因为Prune是剪的意思:

 


多人协作二

对于多人协作一我们已经清楚了,简单总结为什么会出现合并冲突,因为两个开发者在同一条分支上,所以就会导致合并冲突,那么多人协作二是创建两条分支,也就是开发者1拥有自己的分支,开发者2也拥有自己的分支:

所以我们自然是需要在远端先创建两条分支的:

此时创建好了,那么老操作,在Linux环境下使用分支dev1,并且进行连接:

Windows环境同理:

此时,环境就配置好了,那么首先是开发者1,创建一个文档file1.txt并写入:

开发者1的工作完成,然后是开发者2:

两边的工作都完成了。此时就要对远端进行操作了。

可是此时,开发者2的代码好像差点意思,刚好又回家了,所以还在办公室苦苦加班的你,要负责剩余部分的开发工作了,那么如何切换到另一个分支呢?

需要pull即可:

那么修改对应的文件:

好了,重新三部曲就可以了:

此时查看远端情况:

工作都是完成了的,那么就要和master进行merge操作了,同样,先切换到master分支,pull一下,然后切换回去,dev合并master,master再合并dev即可:

此时,dev1的情况就完成了,dev2同理:

这个界面代表车成功。


感谢阅读!