初识git · 多人协作

目录

前言:

多人协作一

多人协作二


前言:

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同理:

这个界面代表车成功。


感谢阅读!

相关推荐
程序员鱼皮5 小时前
Git WorkTree 是什么?凭什么能让 AI 编程效率翻倍?
git·ai·程序员·编程·ai编程
懵逼的小黑子7 小时前
git与远程仓库创建连接
git
前端若水8 小时前
Git 撤销与恢复完全指南(超级详细版)
大数据·git·elasticsearch
golang学习记8 小时前
Git 2.54 来了,这个新命令让我终于敢重写历史了
git·后端
其实防守也摸鱼8 小时前
AWVS下载和安装保姆级教程
linux·服务器·git
前端若水8 小时前
Git 可以做的所有操作(完整分类)
大数据·git·elasticsearch
叹一曲当时只道是寻常8 小时前
Reference 工具安装与使用教程:一条命令管理 Git 仓库引用与知识沉淀
人工智能·git·ai·开源·github
前端若水9 小时前
Git 仓库管理命令完全指南(超级详细版)
大数据·git·elasticsearch
小MarkK10 小时前
[Doc]git的使用之不上传服务器,只在本地管理
git
YoseZang21 小时前
【手工】git的使用 – 使用git进行项目协作
git