git合并分支时当前分支落后于主分支

问题重现:

我们平时开发的时候都是从主分支创建分支,然后将该分支拉取到本地进行开发,开发完成以后再将此分支合并到远程主分支。
但是一般而言,我们都是整个团队在开发,等开发完了,需要合并到远程分支的时候,远程分支已经有很多次提交(commit)了,自己的分支已经落后主分支很多版本,切换回主分支的时候就不在最新commit上:

git checkout origin

git合并分支时当前分支落后于主分支_01.png
那么这个时候应该怎么办呢?

解决思路:

假设当前开发的分支名为:feature/dev
根据主分支(origin)代码在本地创建新的临时分支,命名为temp
将临时分支(temp)合并到开发分支(eature/dev
解决合并后的冲突
提交开发分支(feature/dev)并push到远程仓库
后将开发分支(feature/dev)合并到主分支(origin

实现:

第一步:根据主分支(origin)代码在本地创建新的临时分支,命名为temp

# 获取远程仓库origin主分支的最新代码
git fetch origin

git合并分支时当前分支落后于主分支_02.png

# 根据主分支创建一个临时分支
git checkout -b temp origin

git合并分支时当前分支落后于主分支_03.png
我们可以看到dev分支与temp分支是不一样的
git合并分支时当前分支落后于主分支_04

第二步:将临时分支(temp)合并到开发分支(feature/dev)

# 可以先看下开发分支与临时分支的差别
git diff feature/dev temp

git合并分支时当前分支落后于主分支_05

# 切换到开发分支
git checkout  feature/dev

# 合并临时分到开发分支
git merge temp

git合并分支时当前分支落后于主分支_06
我们可以看到在for_test/test_behand_merge.py文件中有代码冲突,我们需要解决冲突后再进行下一步的操作

第三步:解决合并后的冲突

git合并分支时当前分支落后于主分支_07
解决冲突后是这样的:
git合并分支时当前分支落后于主分支_08

第四步:提交开发分支(feature/dev)并push到远程仓库

我们现在可以看下Git的状态:
git合并分支时当前分支落后于主分支_09
解决冲突后提交一下:

git status

git add test_behand_merge.py

git commit -m "测试:当前分支落后主分支 --> 创建临时分支并合并到dev分支"

git push

git合并分支时当前分支落后于主分支_10

第五步:将开发分支(eature/dev)合并到主分支(origin)

切换到主分支:

git checkout origin

git合并分支时当前分支落后于主分支_11
我们会发现还是还是不是指向最新的提交,OK,没有关系,我们让Git指向最新的提交:

git checkout master

git合并分支时当前分支落后于主分支_12
我们会发现当前分支落后origin/master4个提交,OK,pull一下

# 记得pull一下
git pull

git合并分支时当前分支落后于主分支_13
这个时间就可以做最终的合并了:

git merge feature/dev

git合并分支时当前分支落后于主分支_14
最后push一下就ok了。

  • 17
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
在使用git合并分支解决冲突的过程如下: 1. 首先,当我们在合并分支遇到冲突,我们需要先找到冲突的文件。这些文件中的冲突部分会被标记出来,以便我们进行解决。 2. 接下来,我们需要打开冲突的文件,查看冲突部分的代码。冲突会以特定的标记形式呈现,通常是<<<<<<<,=======和>>>>>>>这样的标记。 3. 我们需要手动编辑冲突部分的代码,将其中的冲突解决掉。我们可以选择保留其中一个分支的更改,也可以将两个分支的更改合并在一起。根据实际情况,可以借助IDE或文本编辑器来辅助解决冲突。 4. 在解决完冲突后,我们需要保存文件并进行git add操作,将文件标记为已解决冲突。 5. 最后,我们可以继续进行git commit和git push操作,将解决冲突后的代码提交到版本库中。 总结起来,解决git合并分支的冲突需要以下步骤:找到冲突文件,手动编辑冲突部分的代码,保存文件并进行git add,最后进行git commit和git push操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [git合并分支如何解决冲突](https://blog.csdn.net/new9232/article/details/122328566)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [如何解决Git合并分支造成的冲突](https://blog.csdn.net/nkmkbhjkb/article/details/129158387)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值