git checkout 遇到的问题 Git-命令行-拯救“Your local changes to the following files would be overwritten by chec

有些时候,当我们使用 git checkout <branchname>命令切换分支的时候,有时会切换失败,然后出现以下的提示信息:

git checkout 遇到的问题 Git-命令行-拯救“Your local changes to the following files would be overwritten by chec

提示信息说的很清楚,
当前分支有未跟踪的文件,checkout 命令会覆盖它们,请缓存( stash )或者提交( commit )。

先说解决方法吧

这个时候,你有两种选择:

###1.未跟踪文件的内容改动很重要,保存修改

//第一种方式 存到暂存区
git add.
git stash 
//取出的时候使用 
git stash pop

//第二种方式 发起一个commit 存到提交历史
git add.
git commit -m "commit message"

###2.未跟踪文件的内容改动不重要,放弃修改

这个有两种办法,清除修改和强制切换分支

推荐做法:清除未跟踪文件

git clean n  //这个是清除文件预览
git clean -f //强制清除文件

强制切换分支

强制切换分支命令如下,结果同提示说的那样,会直接覆盖未跟踪的文件。这个方式我觉得很是粗暴,我们日常切换的时候,还是不要使用 -f 强制切换,没有覆盖提示,很容易发生文件修改丢失,但是我们自己不知道。

git checkout -f <branch> 

git checkout 遇到的问题 Git-命令行-拯救“Your local changes to the following files would be overwritten by chec

分析一下原因

git 的本地版本管理有三个部分

名称 说明
工作区(Working Directory) 我们直接编辑的文件部分
暂存区(Staged Snapshot) 文件执行 git add .后存的地方
版本库区 (Commit History) 文件执行 git commit .后存的地方
上一篇:用【python】自做动图


下一篇:连报三错