git stash命令

git stash命令教程

git stash 命令用于将数据存到缓存,当切换分支的时候,如果有未提交的变更记录,此时系统会阻止你切换分支,可以使用 git stash 将数据暂存。

git stash使用

当切换分支的时候,如果有未提交的变更记录,此时系统会阻止你切换分支,解决方法有两种:

一种是先将代码 commit,切换分支修改完毕,再次切换回原分支,利用 amend 命令,取消 commit,版本回退,记录重新回复。

第二种方式:利用 git stash 命令,先将数据存到缓存,切换分支修改完毕,切换原分支,利 git stash apply 命令将缓存数据恢复。

git stash使用场景

  1. 发现有一个类是多余的,想删掉它又担心以后需要查看它的代码,想保存它但又不想增加一个脏的提交。这时就可以考虑 git stash。
  2. 使用 git 的时候,我们往往使用分支(branch)解决任务切换问题,例如,我们往往会建一个自己的分支去修改和调试代码, 如果别人或者自己发现原有的分支上有个不得不修改的 bug,我们往往会把完成一半的代码commit 提交到本地仓库,然后切换分支去修改 bug,改好之后再切换回来。这样的话往往 log 上会有大量不必要的记录。其实如果我们不想提交完成一半或者不完善的代码,但是却不得不去修改一个紧急 Bug,那么使用 git stash 就可以将你当前未提交到本地(和服务器)的代码推入到 Git 的栈中,这时候你的工作区间和上一次提交的内容是完全一样的,所以你可以放心的修 Bug,等到修完 Bug,提交到服务器上后,再使用 git stash apply 将以前一半的工作应用回来。
  3. 经常有这样的事情发生,当你正在进行项目中某一部分的工作,里面的东西处于一个比较杂乱的状态,而你想转到其他分支上进行一些工作。问题是,你不想提交进行了一半的工作,否则以后你无法回到这个工作点。解决这个问题的办法就是 git stash 命令。储藏(stash)可以获取你工作目录的中间状态——也就是你修改过的被追踪的文件和暂存的变更——并将它保存到一个未完结变更的堆栈中,随时可以重新应用。

git stash命令详解

语法

git stash <subcommand> <options>

参数

参数 描述
subcommand git stash 命令使用的子命令。
options git stash 命令使用的选项。

说明

git stash 会把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录。

暂存工作区

语法

git stash

说明

git stash 命令可以暂存当前工作区。

查看所有暂存

语法

git stash list

说明

git stash list 命令可以查看所有的暂存。

恢复暂存

语法

git stash pop

说明

git stash pop 命令恢复暂存。

移除暂存

语法

git stash drop

说明

git stash drop 命令可以移除暂存。

暂存当前工作区

语法

git stash

案例

我们首先,修改当前工作区的内容,并且,我们使用 git status 命令,查看当前工作区的状态,具体命令如下:

git status

执行完毕后,如下图所示:

现在,我们使用 git stash 暂存当前工作区的修改,具体命令如下:

git stash

执行完毕后,如下图所示:

09_git stash暂存.png

我们看到,我们使用了 git stash 命令,将当前工作区的内容暂存了。

查看暂存区列表

语法

git stash list

案例

我们首先,使用 git stash list 命令,查看暂存区的列表,具体命令如下:

git stash list

执行完毕后,如下图所示:

10_git stash暂存.png

执行完成后,我们看到,显示了暂存区列表。

移除暂存区

语法

git stash drop

案例

我们首先,使用 git stash drop 命令,移除暂存区,具体命令如下:

git stash drop

执行完毕后,如下图所示:

11_git stash暂存.png

执行完成后,我们看到,我们使用了 git stash drop 命令,移除了暂存区的内容。

恢复暂存区内容

语法

git stash pop

案例

我们首先,修改当前工作区的内容,接着,我们使用 git status 命令,查看当前的修改,具体命令如下:

git status

运行后,如下图所示:

12_git stash暂存.png

现在,我们使用 git stash 暂存修改,具体命令如下:

git stash

执行完毕后,如下图所示:

13_git stash暂存.png

现在,我们使用 git stash pop 恢复暂存区的内容,具体命令如下:

git stash pop

执行完毕后,如下图所示:

14_git stash暂存.png

即,我们将当前的暂存区内容恢复了。

git stash命令详解总结

git stash 命令用于将数据存到缓存,当切换分支的时候,如果有未提交的变更记录,此时系统会阻止你切换分支,可以使用 git stash 将数据暂存。