翻车现场
checkout切换分支报错
error: Your Local changes to the following files would be overwritten by checkout:
xxxxxx某某文件
Please commit your changes or stash them before you switch branches.
error: The following untracked working tree files would be overwritten by checkout:
xxxxxx某某文件
Please move or remove them before you switch branches Aborting
**错误信息意思:**第一个error说的是下列修改的文件会在切换分支后被替换,请在切换分之前提交(commit)或者隐藏(stash)修改。第二个工作区内更改的文件未被追踪请在切换分之前移走或删除这些文件。
错误分析
第一个error是因为存在【被追踪的文件(该文件git add
过或曾经git add
过)】更改后没有提交。
第二个error是修改的文件没有被追踪,这个文件可能是新创建的或者是其他原因导致未追踪(可以通过git add 文件名
添加追踪)
提示:追踪和未被追踪是文件的状态,可以通过
git status
查看文件状态,文件状态一般分为四类【Changes not staged
for commit: → 文件没有为提交做暂存,git add
后又修改文件会出现这种情况】、【untracked files: →
未跟踪,新建的文件是这个状态】、【changes to be committed: → 修改的文件已暂存,下次会提交】、【changes
but not update:→ 文件被修改并没有添加到暂存区】
解决第一个ERROR的方法
根据提示,我们就大概可以猜到解决第一个error有两种方法:
方法1、commit提交到本地仓库(提交前,先要存到暂存区)
1)通过add存到暂存区
git add .
2)通过commit从暂存区提交到本地仓库(通过-m)
git commit -m "对本次提交的描述"
方法2、stash保存当前工作区和暂存区进度,回退到上一个 git commit 之后的状态,【未追踪文件】不会存储(了解更多关于git stash的命令)
git stash
需要使用的时候,使用git stash pop
获取git stash
存储的内容。
解决第二个ERROR的方法
方法3、clean清除未被追踪的文件
先用clean -n的命令查看一下即将被清除的文件,此时不会清除,如果有文件需要被追踪还可以使用git add 文件名
添加到追踪
git clean -n
清除
git clean -f
如果对你有帮助可以点赞、收藏哦😗