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

存在无法重置的未跟踪变更时,如何完成Git同步或拉取操作?

解决VSTS Git推送时的文件覆盖问题

嘿,针对你在VSTS(现在叫Azure DevOps)Git协作里遇到的推送问题——已经提交了本地变更,但推送时提示部分文件会被覆盖,可你压根没修改过这些文件,目标是顺利推送同步分支——我给你梳理几个实用的解决步骤,都是日常协作里常用的办法:

1. 先确认本地提交和分支状态

先打开命令行进入项目目录,执行这两个命令,把当前的提交情况和分支差异摸清楚:

git status
git log --oneline -n 5

这能帮你确认自己提交的变更是不是正确的,以及本地分支和远程分支到底差在哪。

2. 拉取远程最新变更并处理冲突

大概率是远程分支有你本地没有的更新,直接推送会被拒绝。这时候先拉取远程变更:

git pull origin <你的分支名称>

如果弹出合并冲突,因为你没修改那些冲突文件,直接选择接受远程版本就行——说白了就是让远程的版本覆盖本地的,反正你本来就没动过这些文件。

3. 安全强制推送(谨慎使用!)

如果你百分百确定本地提交是正确的,而且那些被提示覆盖的文件确实没有需要保留的本地内容,可以试试安全强制推送。注意:强制推送会覆盖远程分支内容,一定要和团队沟通好,确认远程的那些更新是无效的再操作:

git push origin <你的分支名称> --force-with-lease

--force-with-lease比单纯的--force安全得多,它会先检查远程分支有没有新的提交,如果有就不会执行推送,避免误覆盖同事的工作。

4. 检查.gitignore,避免后续再踩坑

如果那些被提示的文件是自动生成的(比如bin/obj文件夹、IDE配置文件),很可能是你没把它们加入.gitignore,导致Git一直在追踪这些没必要的文件。你可以:

  1. 打开项目根目录的.gitignore文件,添加需要忽略的内容,比如:
    *.user
    bin/
    obj/
    
  2. 执行命令让Git停止追踪这些文件:
    git rm --cached <要忽略的文件名/文件夹路径>
    git commit -m "更新.gitignore,忽略自动生成文件"
    

之后再推送,这些文件就不会再给你添乱了。

5. VSTS网页端操作备选

要是你不习惯命令行,也可以在VSTS(Azure DevOps)网页端操作:

  • 进入项目仓库,切换到你的目标分支
  • 点击「Pull request」旁边的「Sync」按钮,先同步远程变更
  • 如果出现冲突,在网页端的冲突解决界面选择「接受远程版本」
  • 最后再推送你的本地提交

操作前记得和同事确认下那些被提示覆盖的文件有没有重要更新,别不小心误删了有用的内容哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:32:18