本文主要是介绍Please commit your changes or stash them before you switch branches,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题描述:
假如现在分支有bug还未解决,现在切换别的分支需要commit,但是你现在不想commit并且切换到别的分支该怎么办
error: Your local changes to the following files would be overwritten by checkout:readme.txt
Please commit your changes or stash them before you switch branches.(请在切换分支之前提交您的更改或隐藏它们)
解决方法
解决方法:在其他分支上另开炉灶解决。
第一步:git stash把修改的代码存起来,通过git stash list查看存起来的列表
第二步:把修改的代码存起来后就可以切换到另一个分支了,git checkout XXXX
第三步:切换到另一个分支后,把之前存起来的代码恢复出来:git stash apply,并且把存起来得缓存删掉:git stash drop
执行 $ git checkout dev 切换到 dev 分支,这个时候执行 git status 命令仍旧显示没有东西需要提交。毕竟我们前边已经成功将dev上未提交的改动给“隐藏“了,这时,用 $ git stash list 命令去查看我们“存储”的列表。
会发现id 为 8528ea2 s 的储藏项目在列表中,我们需要将其恢复,有两个办法:
一、用 $ git stash apply 命令恢复,但是恢复后,stash内容并不删除,这时候再执行 $ git stash list 命令,id 为 8528ea2 s 的储藏项目还会在列表中,你需要用 $ git stash drop 来删除;
注意: 如果有一个分支上多个 stash,如果需要恢复指定的 stash ,可以在命令尾部加id,如 $ git stash apply stash@{0},同样删除指定 stash 项目则执行如 $ git stash drop stash@{1} 。
二、用 $ git stash pop 命令,恢复的同时把 stash 存储列表的内容也删了。这时候再执行 $ git stash list 命令,id 为 8528ea2 s 的储藏项目不会在列表中。
此时再查看 $ cat 会发现之前的改动还存在,且执行 git status 就会继续显示该分支上有改动未提交。
这篇关于Please commit your changes or stash them before you switch branches的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!