【Git】原理及使用(七) (多人协作 [下])

一般情况下,如果有多需求需要多人同时进行开发,是不会在一个分支上进行多人开发的,而是一个需求或一个功能点就要创建一个 feature 分支

现在同时有两个需求需要你和你的小伙伴进行开发,那么你们俩便可以各自创建一个分支来完成自己的工作。在上个部分我们已经了解了可以从码云上直接创建远程分支,其实在本地创建的分支也可以通过推送的方式发送到远端。在这个部分我们就来用一下这种方式。

• 对于你,可以进行以下操作:

• 对于小伙伴,可以进行以下操作:

此时,在本地,你看不见他新建的文档,他看不见你新建的文档。并且推送各自的分支时,并没有任何冲突,你俩互不影响,用起来很舒服!!

再来看下远端码云上此时的状态:

正常情况下,你俩就可以在自己的分支上进行专业的开发了!

但天有不测风云,你的小伙伴突然生病了,需求还没开发完,需要你帮他继续开发,于是他便把feature-2分支名告诉你了。这时你就需要在自己的机器上切换到feature-2分支帮忙继续开发,要做的操作如下:

切换成功后,便可以看见feature-2分支中的function2文件了,接着就可以帮小伙伴进行开发:

推送成功:

这时,你的小伙伴已经修养的差不多,可以继续进行自己的开发工作,那么他首先要获取到你帮他开发的内容,然后接着你的代码继续开发。或者你已经帮他开发完了,那他也需要在自己的电脑上看看你帮他写的代码:

Pull无效的原因是小伙伴没有指定本地feature-2分支与远程origin/feature-2分支的链接,根据提示,设置feature-2和origin/feature-2的链接即可:

拉取成功!

目前,小伙伴的本地代码和远端保持严格一致。你和你的小伙伴可以继续在不同的分支下进行协同开发了。

各自功能开发完毕后,不要忘记我们需要将代码合并到master中才算真正意义上的开发完毕。

由于你的小伙伴率先开发完毕,于是开始merge:

1.切换至master,pull一下,保证本地master是最新内容。

2.切换到feature-2分支,合并master分支。

3.切换至master分支,合并feature-2分支。

4.将master分支推送到远端。

此时远程仓库状态:

当你的小伙伴将其代码 merge 到 master 后,这时你也开发完成了,也需要进行 merge 到 master 操作,于是你:

此时远程仓库的状态:

此时, feature-1 和 feature-2 分支对于我们来说就没用了,那么我们可以直接在远程仓库中将两个功能分支删掉:

这就是多人协作的工作模式,一旦熟悉了,就非常简单。

远程分支删除后,本地git branch -a依然能看到的解决办法

当前我们已经删除了远程的几个分支,使用 git branch -a 命令可以查看所有本地分支和远程分支,但发现很多在远程仓库已经删除的分支在本地依然可以看到。例如:

使用命令 git remote show origin ,可以查看remote地址,远程分支,还有本地分支与之相对应关系等信息。

此时我们可以看到那些远程仓库已经不存在的分支,根据提示,使用 git remote prune origin 命令:

这样就删除了那些远程仓库不存在的分支。对于本地仓库的删除,之前的已经学过了,大家可以自行操作。

相关推荐
郡杰8 小时前
Git基础与开发平台搭建
git·后端
钟智强10 小时前
我警告了 329 天
git·php·wordpress·webshell
乐观的冷风11 小时前
我们需要将文件添加到暂存区才能提交,而移除文件后是无法添加到暂存区的,那么怎么移除一个文件让GIT不再将其纳入版本控制呢?上图中GIT已经给出了说明:
git
tjl521314_2113 小时前
Git SSH Host Key Verification Failed 问题排查与解决
运维·git·ssh
嘶哈哈哈14 小时前
[特殊字符] Git 协作指南
git
say_fall15 小时前
【Git 精品详解】企业规范:企业级开发模型、Git Flow、发版流程规范、Code Owner 制度、事故应急回滚
大数据·linux·服务器·git·学习·elasticsearch
江畔柳前堤1 天前
第13章:docker生产环境部署实战
运维·git·docker·容器·代码复审
GuHenryCheng1 天前
【ESP32】ESP-IDF开发环境搭建(cursor)
git·stm32·单片机·学习
kaka。。2 天前
GIT安装+代码推送
git