【Git多人协作开发】不同的分支下的多人协作开发模式

目录

0.前言背景

1.开发者1☞完成准备工作&协作开发

1.1查看分支情况

1.2创建本地分支feature-1

1.3三板斧

1.4push推本地分支feature-1到远程仓库

2.开发者2☞完成准备工作&协作开发

2.1创建本地分支feature-2

2.2三板斧

2.2push推送本地feature-2到远程仓库

3.出现同一分支下多人协作开发问题

3.1查看分支情况

3.2拉取远程feature-2分支

3.3创建本地feature-2分支并且和远程建立联系

3.4三板斧

3.5回到不同分支多人协作开发问题 

4.将内容合并进master分支

4.1无冲突演示feature2

4.2存在冲突演示feature1

4.2.1拉取pull最新master版本

4.2.2feature合并master

4.2.3push推送至远程仓库

4.2.4远程仓库提交PR:master合并feature1

5.删除无用分支feature-1或者feature-2

6.总结模式


0.前言背景

不同分支去实现不同的function

  • 可以是不同开发者实现不同的function使用不同的分支。

  • 可以是不同开发者实现不同的function使用不同的分支。

  • 可以是同一份文件,也可以是不同文件。

  • ❗重点是:不同分支针对是不同的function


  • 目标:远程master分支下新增function1和function2文件。
  • 实现:由开发者1新增function1,由开发者2新增function2。
  • 条件:在不同分支下协作完成,各自让某一个功能私有某一个分支。
  • 重点:在公司里面,都是一个功能function 对应一个分支这样子来玩的。push不会出现冲突问题。
  • 同一分支下多人协作开发场景:push会出现冲突问题。

1.开发者1☞完成准备工作&协作开发

1.1查看分支情况

git branch -a 

查看分支情况(远程分支/本地分支,远程分支是远程分支,本地分支是本地分支)

1.2创建本地分支feature-1

  • 无论是本地创建还是远程创建,都需要基于master的最新一次提交的版本。
  • 在本地创建的feature的时候必须确保基于本地master分支创建的feature-1分支中的master分支相较于远程分支master分支是最新一次提交记录的版本。
  • 好习惯:git checkout master     git pull
  • git checkout -b feature-1:创建本地分支feature-1

1.3三板斧

vim function1

git add function1

git commit -m "add func1"

git push origin feature-1 

1.4push推本地分支feature-1到远程仓库

git push origin feature-1 

注意:在推送本地分支到远程仓库时(远程仓库创建分支的同时),与本地仓库建立联系了

 

2.开发者2☞完成准备工作&协作开发

2.1创建本地分支feature-2

  • 无论是本地创建还是远程创建,都需要基于master的最新一次提交的版本。
  • 在本地创建的feature的时候必须确保基于本地master分支创建的feature-1分支中的master分支相较于远程分支master分支是最新一次提交记录的版本。
  • 好习惯:git checkout master     git pull
  • git checkout -b feature-2:创建本地分支feature-2

【Windows下不用命令直接操作也可】

2.2三板斧

git add function2

git commit -m "add func2"

git push origin feature-2

 

2.2push推送本地feature-2到远程仓库

git push origin feature-2

  • 注意:在推送本地分支到远程仓库时(远程仓库创建分支的同时),与本地仓库建立联系了
  • 发现不同开发者正在协作开发的过程中,并没有解决冲突。是同一份文件的功能开发push推送也不会有冲突
  • 因为是在不同的分支下开发,各自私有的分支,所以不会有冲突。

 

3.出现同一分支下多人协作开发问题

正常情况下,你俩就可以在⾃⼰的分⽀上进⾏专业的开发了!
但天有不测⻛云,你的⼩伙伴突然⽣病了,但需求还没开发完,需要你帮他继续开发,于是他便把feature-2 分⽀名告诉你了。这时你就需要在⾃⼰的机器上切换到 feature-2 分⽀帮忙继续开发,要做的操作如下:

  1. pull拉取远程仓库的feature-2分支到开发者1本地服务器上
  2. 建立联系
  3. 开发然后push推送

3.1查看分支情况

git branch -a 

查看分支情况(远程分支/本地分支,远程分支是远程分支,本地分支是本地分支)

3.2拉取远程feature-2分支

git pull :这里短pull是拉取远程仓库的内容。(而非分支下的内容

3.3创建本地feature-2分支并且和远程建立联系

git checkout -b dev origin/dev:在创建dev分支的时,切换到了本地dev分支下,同时将本地dev分支和远程的dev分支建立了一个连接。

3.4三板斧

vim function2

git add function2

git commit -m "add func2"

git push origin feature-2

3.5回到不同分支多人协作开发问题 

此刻开发者1开发完function-2的1/3内容了,他的亲亲同事病好了。他准备在他的电脑上继续开发。此刻同事电脑上,并没有开发者1开发的内容。所以他需要先拉取pull远程仓库的内容,再继续开发。

  1. 建立远程feature-2分支和本地feature-2分支的联系
  2. 拉取远程仓库feature-2的内容
  3. 继续开发☞完成开发
  4. push推送至远程仓库(已经建立本地和远程的联系☞直接短命令push直接即可)(这里的短命令push就是推送分支底下的内容

 

4.将内容合并进master分支

  • function1和function2二者功能都完成了开发操作,现在需要都merge都master分支上去
  • 解决方案:提交PR申请单
  • 开发人员:PR☞申请单☞审查员:审核(老板、项目经理、技术经理)☞merge
  • 存在两种情况
  1. 【1】开发分支feature直接和主分支master最新一次提交版本merge合并。(没有合并冲突)----演示feature-2

  2. 开发分支feature直接和主分支master最新一次提交版本merge合并存存冲突。--------演示feature-1


开发分支feature直接和主分支master最新一次提交版本merge合并存存冲突。   

  • 若master合并feature,存在冲突,则在master上去解决的。(可能出现更大bug问题
  • 若feature合并master分支,存在冲突,在feature上解决的。再让master合并feature
  • 注意:本地merge合并一定要pull拉取远程仓库最新的一次提交的版本的master分支

【2】本地☞远程

  1. 本地服务器操作:在本地仓库切换至feature-1 mereg合并 本地master分支,存在冲突,手动解决冲突,三板斧提交并且推送push。
  2. 远程服务器操作:在远程仓库master主分支 merge合并feature-1分支  

【3】或者全在本地——前面博文演示过

  1. 在本地仓库切换至feature-1 mereg合并 本地master分支,存在冲突,手动解决冲突,三板斧提交
  2. 切换至本地master分支合并
  3. 最后push推送至远程仓库

4.1无冲突演示feature2

4.2存在冲突演示feature1

4.2.1拉取pull最新master版本

git checkout master

git pull:这里的短命令push就是推送分支底下的内容

4.2.2feature合并master

git checkout feature-1

git merge master

下面页面表示merge的两个分支,没有任何的冲突。Ctrl+x自动退出了

4.2.3push推送至远程仓库

 git push origin feature-1 

注意:在推送本地分支到远程仓库时(远程仓库创建分支的同时),与本地仓库建立联系了

4.2.4远程仓库提交PR:master合并feature1

5.删除无用分支feature-1或者feature-2

6.总结模式

总结:

  1. 每个开发者都私有一个分支去开发各自的功能。(同一文件/不同文件)
  2. 开发完成之后(三板斧)push,基本不会出现冲突。
  3. 会出现小插曲(同事生病等)。
  4. 完成之后需要将开发分支部分合并到master。三个方案☞建议选择:远程和本地混合。

  • 15
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Git多人协作开发的流程如下: 1. 创建一个Git裸服务器:由项目负责人在服务器上创建一个裸仓库(git init --bare),作为项目的中央代码仓库。 2. 开发人员克隆仓库:每个开发人员将中央代码仓库克隆到本地(git clone),这样他们就可以在自己的本地进行开发工作。 3. 开发工作:开发人员在本地进行常规的开发工作,包括修改代码、添加新功能等。 4. 提交代码:开发人员将他们的修改提交到本地仓库(git commit),这样他们的修改就被记录下来了。 5. 推送到服务器:开发人员将他们的修改推送到中央代码仓库(git push origin master),这样其他开发人员就可以看到他们的修改。 6. 拉取最新代码:开发人员在开始工作之前,应该先拉取最新的代码(git pull),以确保他们的本地代码是最新的。 7. 分支管理:团队可以使用分支来进行并行开发和功能隔离。例如,项目负责人可以创建一个发布分支(Release)用于上线前的测试,如果测试出现bug,则再创建一个修复bug的分支,然后将修复后的代码合并回发布分支开发分支。测试完成后,发布分支和bug分支可以被删除。\[3\] 总结起来,Git多人协作开发的流程包括创建中央代码仓库、克隆仓库到本地、开发工作、提交代码、推送到服务器、拉取最新代码和分支管理。这样团队成员可以在一个统一的代码仓库中进行协作开发,并且能够方便地管理和追踪代码的修改。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [git多人协作开发的流程](https://blog.csdn.net/weixin_43501172/article/details/115549918)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Git多人协同开发工作流](https://blog.csdn.net/Tianxing10/article/details/123600990)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

唐唐思

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

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

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

打赏作者

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

抵扣说明:

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

余额充值