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

Git切换远程仓库分支出现合并冲突的原因及修复方法

操作错误梳理
  • 切换分支前未同步远程分支引用、也未确认本地分支状态:克隆仓库后你在默认分支做了本地提交,此时本地存储的another_branch分支引用还是克隆时刻的旧版本,甚至没有该分支的完整追踪记录,直接执行git checkout another_branch时,Git会把当前分支和目标分支不冲突的改动直接带到切换后的工作区,这就是你刚切过去发现文件不对的核心原因——你当时看到的根本不是another_branch的完整正确内容。
  • 状态混乱时直接执行拉取操作:git pull的本质是拉取远程代码+自动合并,你在工作区已经串了其他分支内容、分支指向本身就不对的情况下执行拉取,相当于把远程another_branch的代码和你当前混乱的工作区强行合并,直接触发冲突,把仓库拖进半合并的异常状态。
异常状态修复步骤

操作前如果怕本地之前写的代码丢,可以先把整个项目文件夹完整复制一份做备份,再执行以下操作:

  1. 先终止当前卡住的合并流程:
    git merge --abort
    
    执行完如果git status还是显示有大量未提交的改动、残留文件,直接执行硬重置把工作区恢复到当前分支的干净提交状态:
    git reset --hard HEAD
    git clean -fd
    
    这两条命令会清除所有未提交的改动、未被Git追踪的文件,执行完工作区会回到干净状态。
  2. 拉取所有远程分支的最新引用到本地,这一步只会同步远程的分支信息,不会改你本地的代码内容:
    git fetch origin
    
  3. 按需切换分支即可:
    • 如果你要切到another_branch查看代码,直接基于远程最新的another_branch创建本地追踪分支,内容完全和远程一致,不会串其他分支的改动:
      git checkout -b another_branch origin/another_branch
      
    • 如果你要回到之前自己做了提交的开发分支继续写代码,直接切回对应分支就行:
      git checkout 你之前做提交的分支名
      

日常使用提示:后续切分支前可以先执行git status确认工作区状态,如果有未提交的临时改动,要么先提交到当前分支,要么用git stash暂存,再切分支就不会出现内容串扰的问题。如果后续在正确分支上执行pull遇到冲突,属于正常的代码合并场景,手动解决冲突文件里的冲突标记,再提交结果即可,不属于仓库异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 20:45:31