git错误'fatal: cannot do a partial commit during a merge'

在使用Git合并分支时遇到了'fatal: cannot do a partial commit during a merge'的错误。该错误发生在解决冲突过程中,尝试合并分支PC到master时,遇到无法编辑的文件并进行了替换。正确做法应使用`git checkout --theirs`或`git checkout --ours`来处理冲突。最后通过理解Git认为本地有新提交导致的问题,遵循解决步骤成功合并。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们公司管理代码用的Git分布式版本控制系统,最近合并分支遇到这个问题,记录下来。

先说下我这个错误产生的步骤。(假设我的分支名是PC,主分支是master)
  1. 我开分支的原因是需要回滚到master几次提交之前的版本,在此基础上做更改。
  2. 我在分支PC基础上做了代码修改,版本封版后,需要合并到主版本。
  3. 切换到主版本:Git checkout master
  4. 合并分支PC到master:git merge PC
  5. 提示我一大堆冲突,OK,图我也忘了截屏了,大家自行脑补。
  6. 我找到冲突的文件,挨个修改。突然碰到了一个不能打开编辑的文件,这怎么办。我就找到之前项目的备份拷过来一份替换。我以为万事大吉了。只需要提交就行了。
  7. 我就
 #git -add -A  //提交所有变化
 #git commit -m '注释'

但是提示错误 ‘fatal: cannot do a partial commit during a merge’,至此解决冲突失败。

解决方案:
我其实在第6步的时候就应该用 git checkout --ours XXX/XXXX.m来保留主版本的代码,弃用子分支PC的文件代码。或者用下面代码弃用主版本文件代码,保留子分支的文件代码。可惜我没有这么做。。。。。。。。。。。。。我怎么可以这么笨

git checkout --theirs xxx/XXXX.m 

开始疯狂找解决方法,😂有点夸张。。。。。。出现这个问题的原因其实就是我替换的时候本地git系统认为我本地有新的提交了。这个时候没有提交是不能merge的。OK,下面👇是解决步骤:

1. #git push //先把本地的更新提交(其实这个更新只是我的错误操作导致的)
2. #git add -A 
3. #git commit -m 
4. #git push 

一切恢复正常。merge结束,希望能帮到和我遇到一样问题的朋友。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值