0%

git stash暂存区的使用

当我们在开发一个新功能时,线上出现bug需要临时修改。需要创建一个新的分支来进行修复,但是当前的功能没开发完又不想提交commit,这种情况下可以通过 git暂存区 来临时保存修改。


创建暂存

修改文件

当前分支中的文件已经被git跟踪,只是对文件进行了修改。可以通过如下命令来暂存修改:

1
git stash

默认会使用上一次的commit信息来命名这次暂存的注释。

也可以自定义暂存注释信息:

1
git stash save "暂存注释"

新增文件

如果有新添加的文件,需要通过 -a 参数来创建暂存:

1
2
3
git stash -a

git stash save -a "暂存注释"

当然,这一步操作也可以拆分成两步来完成:

第一步,先将当前的修改添加到暂存区:

1
git add .

对修改后的文件创建暂存:

1
2
3
git stash

git stash save "暂存注释"

查看暂存

查看暂存记录

列出暂存区所有列表记录:

1
git stash list

eg:

1
stash@{0}: On kf-207: url

可以看到每条暂存记录通过前面的 stash@{index} 来进行标识,后续可以通过该参数来进行操作,默认 index 从0开始。

查看暂存修改

如果想要查看某个暂存改动了哪些文件,可以通过 show 命令实现。

1
2
3
git stash show

git stash show stash@{index}

默认 show 第一个暂存,如果想要显示其他,直接在后面加上相应的 stash@{index} 即可。

如果想要查看某个暂存具体改动了文件中的哪些内容,可以通过 show 命令的 -p 参数实现。

1
2
3
git stash show -p

git stash show stash@{index} -p

使用暂存

apply应用暂存

做完了临时修改,想要恢复应用某个暂存,可以通过 apply 命令来恢复:

1
2
3
git stash apply

git stash apply stash@{index}

默认会使用第一个暂存记录,即 stash@{0}

pop应用并删除

apply 命令类似的,还有一个 pop 命令也可以恢复应用暂存:

1
2
3
git stash pop

git stash pop stash@{index}

默认会使用第一个暂存记录,即 stash@{0}

需要注意的是:pop 命令会恢复相应的暂存记录后,从列表中删除该记录。可以理解为 应用并删除

而上面介绍的 apply 命令只是 应用 ,暂存记录仍会保留。


删除暂存

如果想要删除某一个修改暂存,可以通过 drop 命令操作:

1
git stash drop stash@{0}

如果要清空所有的暂存记录,可以通过 clear 命令操作:

1
git stash clear

如有疑问或需要技术讨论,请留言或发邮件到 service@itfanr.cc