Git在哪些场景下会删除工作区的未跟踪文件?
Git 操作中会删除未跟踪文件的其他常见场景
- 切换分支/提交操作:执行
git checkout <分支名/提交哈希>、git switch <分支名>时,如果目标分支/提交中存在和本地工作区未跟踪文件同名的已跟踪文件,Git 会直接删除本地未跟踪文件,用分支中的文件完成切换,不会做额外提示。 - 合并操作:执行
git merge <目标分支>时,若待合入分支存在和本地未跟踪文件同名的已跟踪文件,合并逻辑会直接删除本地未跟踪文件完成合并流程。 - 变基操作:执行
git rebase <基准分支/提交>的过程中,若变基流程涉及的提交存在和本地未跟踪文件同名的已跟踪文件,Git 会移除本地未跟踪文件来完成变基步骤。 - 硬重置后续操作:执行
git reset --hard <提交哈希>后如果紧接着切换分支,也可能触发上述切换分支的未跟踪文件删除逻辑。 - 带自动清理的拉取操作:执行
git pull --rebase --autostash这类带自动暂存、自动变基参数的拉取命令时,如果远程分支内容和本地未跟踪文件路径冲突,也会触发未跟踪文件删除。 - 多工作区操作:使用
git worktree add创建关联同一仓库的新工作区时,如果目标路径下已存在和待检出分支内容冲突的未跟踪文件,Git 会直接删除对应文件完成工作区初始化。
日常操作前可以先执行
git status确认未跟踪文件列表,重要的临时文件建议先添加到.gitignore规则中,避免误删。
内容的提问来源于stack exchange,提问作者Erik
相关产品推荐
相关产品推荐

