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

SourceTree合并异常:提示冲突却无冲突文件且未同步feature分支变更

问题原因解析与排查步骤
  • 隐性空白/元数据冲突
    Git会将文件空白符、换行格式或权限变更标记为冲突,但SourceTree默认可能不展示这类无实际代码变更的冲突。合并时系统检测到冲突却无文件显示,大概率是这类隐性冲突导致。
    排查:终端执行git diff --check可直接列出所有空白类冲突;也可在SourceTree设置中开启「显示空白字符差异」选项,重新查看冲突。

  • 合并提交被覆盖或未真正执行
    若main分支存在未拉取的远程提交,合并dev时可能触发快进合并,导致dev分支的变更被远程main的新提交覆盖;或是合并操作因缓存异常未真正生成合并提交。
    排查:执行git reflog查看main分支的操作历史,确认合并提交是否存在,是否有重置、强制推送等操作覆盖了之前的合并。

  • feature分支变更未实际合并到development
    看似feature合并到dev成功,实则可能是空合并(比如feature分支已被之前的合并包含),或是合并时误选了「保留当前分支版本」(--ours参数)导致变更被丢弃。
    排查:用git log --oneline feature..development检查dev是否包含feature的所有提交;或git diff feature development对比两个分支的实际差异。

  • SourceTree本地缓存异常
    SourceTree的UI状态缓存可能与Git仓库实际状态不同步,导致冲突显示错误、合并结果误判。
    排查:点击SourceTree工具栏的「刷新」按钮重置状态;或终端执行git reset --hard HEAD重置本地分支后,重新拉取远程分支再尝试合并。

  • 数据库变更文件未被Git追踪
    如果表结构变更对应的迁移脚本、ORM配置文件被.gitignore忽略,或是未添加到Git仓库,即使代码合并成功,这些变更也不会同步到main分支,导致生产数据库与本地不一致。
    排查:检查.gitignore文件是否包含数据库相关文件;执行git status查看是否有未追踪的变更文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 18:15:35