解决git分支切换时遇到的问题

Please commit your changes or stash them before you switch branches问题的解决

在项目开发的过程中,有时候会遇到一个分支上的BUG还没解决,另一个分支上的BUG又急需解决。这个时候如果没有提交当前分支上的修改的话,是没有办法切换分支的。
遇到这类问题要怎么解决呢?

首先使用 git branch 命令查看一下我的分支,可以看到目前是在 feat/demo-zky 分支上:

解决git分支切换时遇到的问题_第1张图片
使用 git diff 命令发现本地代码有改动,使用 git status 命令发现有修改的文件待提交:

解决git分支切换时遇到的问题_第2张图片
这时如果我们想跳转去 feat/two 分支上,使用 git checkout 命令,发现提示‘Please commit your changes or stash them before you switch branches’:

解决git分支切换时遇到的问题_第3张图片

系统提示:请在切换分支之前提交您的更改或隐藏它们,所以我们有两种办法解决它:

第一种:提交更改

使用 git commit 命令提交更改

第二种:隐藏这些修改

使用 git stash 命令隐藏修改,再使用 git status 命令发现没有更改需要提交,这个时候我们就可以切换分支去处理其他分支上的代码了:

注:在使用 git status 命令隐藏修改时,系统会返回一个 id,例如本例 id 为:7d2302c

解决git分支切换时遇到的问题_第4张图片

但是这些修改只是被隐藏了,切换回去这个分支,使用 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 查看列表,发现列表为空。

你可能感兴趣的:(GIT,git)