Visual Studio 2019与Git Bash切换分支时遇GitCheckoutConflictException及未跟踪文件覆盖错误求助
解决Git切换分支时未跟踪文件覆盖冲突的问题
嘿,这个问题我之前也碰到过,本质是你的工作区里存在一些Git未跟踪的文件,而你要切换的目标分支里已经有同名文件了——Git怕你不小心丢失这些未跟踪的内容,所以直接阻止了分支切换操作,不管是用VS还是Git Bash都会触发这个问题,重启VS当然解决不了啦。给你几个实用的解决办法,根据你的需求选就行:
办法一:直接删除不需要的未跟踪文件
如果这些提示的未跟踪文件对你没用,直接清理掉就好:
- 打开Git Bash,执行命令:
git clean -fd注意:
-f是强制删除未跟踪文件,-d会连带删除未跟踪的文件夹,执行前一定要仔细核对错误提示里的文件名列表,确认这些文件确实不需要保留!
办法二:暂时保存未跟踪文件,切换后再恢复
要是你还需要这些未跟踪文件,可以用Git的 stash 功能把它们临时存起来:
- 在Git Bash里执行,把未跟踪文件也加入 stash:
(git stash push -u-u参数是关键,它会让stash包含未跟踪的文件,默认stash只跟踪已修改的文件) - 现在可以正常切换分支了:
git checkout branchname - 之后如果需要恢复之前的未跟踪文件,执行:
git stash pop
办法三:手动迁移文件后再切换分支
如果你不想用Git命令操作,也可以手动处理:
- 找到错误提示里的那些未跟踪文件,复制到Git工作区以外的位置(比如桌面、临时文件夹)
- 执行
git checkout branchname完成分支切换 - 切换成功后,再把复制出去的文件移回来,按需处理(比如合并内容、重新命名等)
内容的提问来源于stack exchange,提问作者The Inquisitive Coder
相关产品推荐
相关产品推荐

