解决git分支切换时遇到的问题
Please commit your changes or stash them before you switch branches问题的解决在项目开发的过程中,有时候会遇到一个分支上的BUG还没解决,另一个分支上的BUG又急需解决。这个时候如果没有提交当前分支上的修改的话,是没有办法切换分支的。遇到这类问题要怎么解决呢?首先使用 git branch 命令查看一下我的分支,可以看到目前是在 f
Please commit your changes or stash them before you switch branches问题的解决
在项目开发的过程中,有时候会遇到一个分支上的BUG还没解决,另一个分支上的BUG又急需解决。这个时候如果没有提交当前分支上的修改的话,是没有办法切换分支的。
遇到这类问题要怎么解决呢?
首先使用 git branch 命令查看一下我的分支,可以看到目前是在 feat/demo-zky 分支上:
使用 git diff 命令发现本地代码有改动,使用 git status 命令发现有修改的文件待提交:
这时如果我们想跳转去 feat/two 分支上,使用 git checkout 命令,发现提示‘Please commit your changes or stash them before you switch branches’:
系统提示:请在切换分支之前提交您的更改或隐藏它们,所以我们有两种办法解决它:
第一种:提交更改
使用 git commit 命令提交更改
第二种:隐藏这些修改
使用 git stash 命令隐藏修改,再使用 git status 命令发现没有更改需要提交,这个时候我们就可以切换分支去处理其他分支上的代码了:
注:在使用 git status 命令隐藏修改时,系统会返回一个 id,例如本例 id 为:7d2302c
但是这些修改只是被隐藏了,切换回去这个分支,使用 git status 命令发现还是没有更改需要提交,但是如果我们想继续这些修改,要怎么恢复?
可以使用 git stash list 命令查看隐藏列表,我们可以看到 id 为:7d2302c的存储项目在隐藏列表中:
可以使用两种方法修复:
第一种:git stash apply
这种方法可以将隐藏的文件从列表中恢复出来,但是输入 git stash list 查看列表,id 为:7d2302c的存储项目依旧在隐藏列表中,如果想从隐藏列表中删除,需要使用 git stash drop 删除。
注意: 如果有一个分支上多个 stash,如果需要恢复指定的 stash ,可以在命令尾部加id,如 $ git stash apply stash@{0},同样删除指定 stash 项目则执行如 $ git stash drop stash@{1} 。
第二种:git stash pop
这种方法也可以将隐藏文件从列表中恢复,同时也会删除隐藏列表中的内容,输入 git stash list 查看列表,发现列表为空。
更多推荐
所有评论(0)