“Your local changes to the following files would be overwritten by checkout” (切换分支)解决:
当前分支有未跟踪的文件,checkout 命令会覆盖它们,请缓存( stash )或者提交( commit )。
1.未跟踪文件的内容改动很重要,保存修改
//第一种方式 存到暂存区
git add .
git stash
//取出的时候使用
git stash pop
//第二种方式 发起一个commit 存到提交历史
git add.
git commit -m "commit message"
2.未跟踪文件的内容改动不重要,放弃修改
未使用 git add 缓存代码时。
可以使用 git checkout -- filepathname
(比如: git checkout -- readme.md ,不要忘记中间的 “--” ,不写就成了检出分支了!!)。放弃所以的文件修改可以使用 git checkout .
已经使用了 git add 缓存了代码。
可以使用 git reset HEAD filepathname
(比如: git reset HEAD readme.md)来放弃指定文件的缓存,放弃所有的缓存可以使用 git reset HEAD
已经用 git commit 提交了代码。
git reset --hard HEAD^ 来回退到上一次commit的状态。
此命令可以用来回退到任意版本:git reset --hard commitid