执行git checkout main报错未跟踪工作树文件README.md被覆盖如何解决
Git切换main分支时报未追踪文件被覆盖错误的解决方案
报错根因
你遇到的报错核心逻辑是:当前工作区存在未被Git追踪的README.md文件,而目标main分支中已存在同名的被追踪文件,Git为了避免无提示覆盖本地未提交的内容,主动终止了分支切换操作。
之前操作无效的原因
- 执行
git rm --cached README.md无效:该命令仅会删除暂存区中已被Git追踪的对应文件记录,你的README.md属于未追踪状态,暂存区不存在该文件的记录,操作无实际效果。 - 提交当前分支改动后仍报错:你使用的
git add -all为错误参数写法,正确的全量暂存命令为git add --all或简写git add -A,错误参数导致README.md未被纳入暂存,提交后仍为未追踪状态,因此报错持续存在。
分场景解决方案
场景1:本地未追踪的README.md无保留价值
直接删除本地文件后切换分支即可,Windows cmd环境请将删除命令替换为del README.md:
rm README.md git checkout main
场景2:需要保留本地README.md的内容
先备份本地文件再切换分支,后续可自行对比合并内容,Windows cmd环境请将重命名命令替换为ren README.md README.md.local.bak:
# 重命名备份本地文件 mv README.md README.md.local.bak # 切换分支 git checkout main
场景3:确认可以丢弃本地文件内容,强制切换分支
注意:该操作会直接用main分支的README.md覆盖本地文件,确认无需要保留的修改后再执行
git checkout -f main
内容的提问来源于stack exchange,提问作者Hemang Joshi
相关产品推荐
相关产品推荐

