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

git merge/pull遇本地未跟踪文件覆盖报错 如何自动获取diff合并内容

Git合并/拉取时保留本地未跟踪同名文件的自动合并方案

执行git merge或git pull时如果本地存在与上游新增文件同名的未跟踪文件,会触发以下报错:

error: The following untracked working tree files would be overwritten by merge:

要保留本地内容同时自动合并两份文件,不需要手动逐个处理,可按以下步骤操作:

  • 第一步:将本地所有未跟踪文件暂存到Git暂存栈,此时工作区冲突文件会被临时移除
git stash push --include-untracked -m "temp: save local untracked files"
  • 第二步:正常执行你需要的拉取/合并操作,此时不会再触发未跟踪文件覆盖报错
# 拉取远程分支更新用这个
git pull
# 合并指定本地分支用这个,替换<目标分支名>为实际分支名
git merge <目标分支名>
  • 第三步:恢复之前暂存的本地文件,Git会自动按标准合并规则合并两份文件的内容,无歧义的内容会自动合并,存在冲突的内容会在文件中标记标准冲突分隔符
git stash pop
  • 可选:如果需要全自动处理冲突,无需人工介入,可在恢复暂存文件触发冲突后执行以下命令
# 冲突部分优先使用上游分支内容
git checkout --ours -- .
# 冲突部分优先使用本地暂存的内容
git checkout --theirs -- .

注意:--ours对应刚拉取/合并完成的上游内容,--theirs对应你之前暂存的本地未跟踪文件内容

  • 确认合并结果无误后执行提交即可
git add . && git commit -m "merge: combine local untracked files with upstream changes"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:36:08