Git切换分支报错:更新目录会丢失未跟踪文件如何解决?
解决Git切换分支时未跟踪文件阻止操作的问题
原因
报错是因为src/services/oam/oam_module/目录里有Git未跟踪的文件(没执行过git add的文件),Git怕这些文件在分支切换时被覆盖或弄丢,所以中止了切换操作。
解决办法
1. 直接删除无用的未跟踪文件
如果这些文件是临时生成的、留着没用,直接执行删除:
git clean -fd src/services/oam/oam_module/
参数说明:
-f:强制删除未跟踪文件-d:同时删除未跟踪的目录
删除完成后再执行分支切换:
git checkout development
2. 将文件加入Git忽略列表(避免后续再触发同类问题)
如果这些文件是项目运行时自动生成的(比如日志、临时构建文件),可以把它们加入.gitignore让Git不再检测:
- 打开项目根目录下的
.gitignore文件(没有就新建一个) - 添加一行规则:
src/services/oam/oam_module/
- 保存文件后执行分支切换:
git checkout development
3. 暂存未跟踪文件(需要保留这些文件时用)
如果还需要保留这些未跟踪文件,可以先暂存到Git的临时存储区:
git stash push -m "暂存oam_module未跟踪文件" src/services/oam/oam_module/
成功切换分支后,若要恢复这些文件,执行:
git stash pop
内容的提问来源于stack exchange,提问作者Ashish
相关产品推荐
相关产品推荐

