当我们在开发一个新功能时,线上出现bug需要临时修改。需要创建一个新的分支来进行修复,但是当前的功能没开发完又不想提交commit,这种情况下可以通过 git暂存区
来临时保存修改。
创建暂存
修改文件
当前分支中的文件已经被git跟踪,只是对文件进行了修改。可以通过如下命令来暂存修改:
1 | git stash |
默认会使用上一次的commit信息来命名这次暂存的注释。
也可以自定义暂存注释信息:
1 | git stash save "暂存注释" |
新增文件
如果有新添加的文件,需要通过 -a
参数来创建暂存:
1 | git stash -a |
当然,这一步操作也可以拆分成两步来完成:
第一步,先将当前的修改添加到暂存区:
1 | git add . |
对修改后的文件创建暂存:
1 | git stash |
查看暂存
查看暂存记录
列出暂存区所有列表记录:
1 | git stash list |
eg:
1 | stash@{0}: On kf-207: url |
可以看到每条暂存记录通过前面的 stash@{index}
来进行标识,后续可以通过该参数来进行操作,默认 index
从0开始。
查看暂存修改
如果想要查看某个暂存改动了哪些文件,可以通过 show
命令实现。
1 | git stash show |
默认 show
第一个暂存,如果想要显示其他,直接在后面加上相应的 stash@{index}
即可。
如果想要查看某个暂存具体改动了文件中的哪些内容,可以通过 show
命令的 -p
参数实现。
1 | git stash show -p |
使用暂存
apply应用暂存
做完了临时修改,想要恢复应用某个暂存,可以通过 apply
命令来恢复:
1 | git stash apply |
默认会使用第一个暂存记录,即 stash@{0}
。
pop应用并删除
和 apply
命令类似的,还有一个 pop
命令也可以恢复应用暂存:
1 | git stash pop |
默认会使用第一个暂存记录,即 stash@{0}
。
需要注意的是:pop
命令会恢复相应的暂存记录后,从列表中删除该记录。可以理解为 应用并删除
。
而上面介绍的 apply
命令只是 应用
,暂存记录仍会保留。
删除暂存
如果想要删除某一个修改暂存,可以通过 drop
命令操作:
1 | git stash drop stash@{0} |
如果要清空所有的暂存记录,可以通过 clear
命令操作:
1 | git stash clear |