
前言
在实际开发中,常常会遇到这样的情况,我们正在 dev
上开发一个功能,这个时候突然接到上级命令,需要修改一个紧急 bug-5501
,当然我们马上想到的就是创建一个 branch bug-5501
的分支来修复它,但是这个时候我们在 dev
上的功能已经写了一半了,如果我们直接创建分支,并 chekcout branch bug-5501
的话,我们在 dev
上的修改的内容,也会显示在我们 branch bug-5501
上,这样就会让我们感觉到非常混乱。我们也不能提交我们未完成的功能到 dev
上,那这个时候怎么办呢?
在Git中,为我们提供了 git stash
命令,专门负责处理这种情况。让我们一起来了解该命令吧。
git stash 指令介绍
为了演示具体效果,这里以下面例子为例,我们在dev
开发的新功能,修改了Person.java
,具体如下所示:

这个时候我们运行git staus
指令,可以看到仓库状态:
$ git status
Your branch is up to date with 'origin/master'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: src/main/java/Person.java
如果直接在当前 dev
分支上直接直接执行命令 git branch bug-5501
,那么我们我们修改的内容也也会在 bug-5501
分支上,如下所示:

那现在我们想要创建一个新的分支 branch bug-5501
,但是不想包括我们之前修改的 Person.java
中的内容,那么我们可以使用 git stash
或 git stash save
指令。