记录一次使用git merge命令无法合并远端某分支代码的问题

问题描述

我当前在dev_fat分支上,想合并dev_lm的代码,于是我执行:

git merge origin develop_lm

显示Already up to date。意思是已经是最新代码

排查过程

但是在ServiceImpl类中有个sendMsg方法,明明在dev_lm分支里有,但是dev_fat分支里却没有,为什么没有合并进来呢?百思不得其解,各种搜索问ai。于是我接着执行如下命令让git自己比较下二者的区别:

git diff dev_fat..origin/dev_lm -- app/src/main/java/com/basebiz/service/ServiceImpl.java

结果输出内容有如下两行:

— a/app/src/main/java/com/basebiz/service/ServiceImpl.java
+++ b/app/src/main/java/com/basebiz/service/ServiceImpl.java

这说明,git是知道dev_fat和dev_lm分支的ServiceImpl类是不一致的。但为什么没将dev_lm的内容合并进来呢?
——很有可能是因为已经有其他人“告诉”过git,不用把这个ServiceImpl类中的东西合并到develop_fat中。

确认原因

于是在dev_fat分支执行命令:

git log dev_fat

结果看到最近一条结果如下:

Merge: ab1417c7c9 2ec4627b9a
Author: lm <lm@abc.com>
Date:   Thu Jul 24 19:03:51 2025 +0800

    Merge remote-tracking branch 'origin/dev_lm' into dev_fat

    # Conflicts:
    #        app/src/main/java/com/basebiz/service/ServiceImpl.java

果然,我的同事lm曾经也进行过相同的merge操作,可能当时在解决冲突的时候“告诉”了git,不用再将ServiceImpl合并到dev_fat了。

解决方案

手动指定文件进行合并,在dev_fat分支执行:

git checkout origin/dev_lm -- app/src/main/java/com/basebiz/service/ServiceImpl.java

git commit -m "手动合并缺失方法"

然后push到远端,结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值