You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio Code中Git出现传入/传出冲突及未完成合并问题求助

原因及解决方法:"A merge is unfinished - MERGE HEAD existing" 错误

原因

这个错误的核心是本地Git仓库处于未完成的合并状态:之前执行pull/merge操作时,本地代码与远程代码出现冲突,但你没有完成冲突解决、提交合并结果的完整流程,导致Git停留在合并中间环节,后续所有同步操作(fetch/push/pull)都会被阻塞。

你看到的"Incoming change"和"Outgoing change"冲突,本质是远程分支的代码与本地待推送的代码,在之前的合并操作中产生了未解决的分歧,Git无法自动完成合并,因此卡住了流程。


解决步骤

方案1:完成合并,保留需要的代码

  1. 定位冲突文件:在VS Code的Source Control面板中,找到带Merge Conflict标记的文件,打开后会看到Git自动添加的冲突分隔符:
    <<<<<<< HEAD
    本地当前的代码内容
    =======
    远程传入的代码内容
    >>>>>>> [远程分支名/提交哈希]
    
  2. 手动解决冲突:编辑文件,保留你需要的代码片段,删除所有冲突分隔符(<<<<<<<、=======、>>>>>>>)。
  3. 标记冲突已解决:右键点击已处理的冲突文件,选择Mark as Resolved;或者在终端执行:
    git add <冲突文件名>
    
  4. 完成合并提交:所有冲突解决后,在Source Control面板输入合并提交信息,点击Commit;或终端执行:
    git commit
    
    Git会自动生成合并提交的默认信息,确认即可。
  5. 同步代码:现在可以正常执行push操作,将代码同步到GitHub。

方案2:放弃合并,回退到合并前状态

如果不需要保留这次合并,想直接回到合并操作前的干净状态,在终端执行:

git merge --abort

这个命令会彻底取消未完成的合并,将本地仓库恢复到合并前的状态。之后你可以重新执行fetch/pull,再根据情况处理代码同步。


内容的提问来源于stack exchange,提问作者Bol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 03:52:36