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

Visual Studio中Git拉取遇729冲突且合并中断,求解决方案

解决Git仓库中bin/obj文件夹引发的冲突及永久排除方案

兄弟,这种情况我太熟了——编译产物混进远程仓库,简直是团队协作的噩梦。先别慌,咱们一步步把问题彻底解决:

第一步:终止当前失败的合并,恢复本地干净状态

现在你的合并已经中断,先把本地状态拉回正轨:

  • 如果本地有未提交的修改,先暂存起来避免丢失:git stash
  • 执行命令取消合并:git merge --abort
    这会让你的仓库回到拉取前的状态,不会留下半吊子的冲突文件。

第二步:彻底从远程仓库移除bin/obj文件夹

因为这两个文件夹已经被推送到远程,.gitignore对已追踪的文件无效,必须先把它们从仓库的追踪列表里移除:

  1. 执行命令,移除Git对bin/obj的追踪,但保留本地的文件夹(毕竟本地编译还需要):
    git rm -r --cached bin/ obj/
  2. 提交这个移除操作:
    git commit -m "停止追踪bin/obj编译产物文件夹"
  3. 推送到远程仓库:
    git push origin <你的分支名> (比如main或develop)

第三步:修复.gitignore,确保以后不再出现问题

现在要让.gitignore真正生效,打开文件添加以下两行(如果是项目根目录下的文件夹,直接这么写就行):

bin/
obj/
  • 注意检查VS是否自动生成过.gitignore,有没有覆盖或者路径错误的情况。
  • 别忘了把更新后的.gitignore提交并推送到远程,让团队所有人同步这个配置。

第四步:通知团队成员同步操作

让另外两位同事也执行以下步骤,确保他们的本地仓库也同步规则:

  • 暂存本地未提交修改:git stash
  • 拉取远程最新代码:git pull origin <分支名>
  • 如果他们本地的bin/obj还在被追踪,执行:git rm -r --cached bin/ obj/
  • 恢复暂存的修改:git stash pop
  • 确认他们的.gitignore里已经添加了bin/和obj/的排除规则

为什么之前的.gitignore没生效?

简单说:.gitignore只对从未被Git追踪过的文件起作用。一旦这些文件夹被git add并提交过,Git就会一直追踪它们,不管.gitignore里怎么写。所以必须先通过git rm --cached移除追踪,才能让规则生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:23:10