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

切换到master分支后Visual Studio引发Git合并错误求助

解决Visual Studio项目Git合并冲突的问题(附正确工作流)

问题根源

你遇到的所有冲突文件(.vs/下的.suo、obj/下的构建缓存文件)都是Visual Studio自动生成的临时/构建文件,这些文件完全不需要被Git追踪——它们会随环境、构建操作自动变化,追踪必然导致无意义的冲突。

先解决当前的合并失败问题

按以下步骤操作:

  1. 取消正在进行的失败合并:
    git merge --abort
    
  2. 回退master分支上那个"useless commit"(这个提交包含了不该追踪的临时文件):
    git reset HEAD~1
    
  3. 创建并配置.gitignore文件,彻底排除这些无用文件:
    • 在项目根目录新建.gitignore文件,写入以下内容:
      # Visual Studio IDE 相关文件
      .vs/
      *.suo
      *.user
      *.sln.docstates
      
      # 构建输出与缓存文件
      obj/
      bin/
      *.GeneratedMSBuildEditorConfig.editorconfig
      *.assets.cache
      *.csproj.nuget.dgspec.json
      *.csproj.nuget.g.props
      project.assets.json
      project.nuget.cache
      
    • 把已经被Git错误追踪的这些文件从仓库中移除(本地文件会保留,只是Git不再监控它们):
      git rm -r --cached .vs/ obj/
      
    • 提交这个配置:
      git add .gitignore
      git commit -m "添加.gitignore,排除IDE和构建临时文件"
      
  4. 现在可以正常合并功能分支了:
    git merge class-lib-move
    

针对Visual Studio项目的正确Git工作流

避免以后再踩坑,按这个流程来:

  • 克隆仓库后第一时间检查是否有.gitignore,没有就立刻创建并配置好上面的规则
  • 创建功能分支开发:
    git checkout -b class-lib-move
    
  • 用Visual Studio打开项目开发,完成修改后:
    • 先关闭Visual Studio(防止它自动生成/修改临时文件)
    • 提交你的源码修改:
      git add .  # 因为有.gitignore,只会选中你修改的源码文件
      git commit -m "完成类库迁移:[具体修改描述]"
      
  • 切回master分支并合并:
    git checkout master
    git merge class-lib-move
    
  • 推送到远程仓库:
    git push origin master
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 04:22:25