git stash 的用法详解
在项目开发中,如果我们正在当前分支开发某个需求,突然遇到要切换分支去修改bug时,此时我们不想将当前的修改提交到远程分支,那么我们可以使用
git stash
命令先存放起来。git stash 常用命令如下:
1)git stash save "备注信息" : 存放时添加备注便于查找;当然只执行git stash
也可以,系统会自动为我们添加备注,但不便于查找。
2)git stash list : 查看存放列表
3)git stash show : 显示改动信息,默认展示第一个存储,如果要显示其它存储,后面加stash@{index},比如第二个 git stash show stash@
index
: 代表存储的索引,从 0 开始
4)git stash show -p : 显示第一个存储的改动,如果想显示其它存储,git stash show stash@{index} -p
,比如第二个:git stash show stash@{1} -p
5)git stash pop : 恢复之前存储的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@
6)git stash apply : 应用某个存储,但其不会从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{index} , 比如第二个:git stash apply stash@
git stash pop
与git stash apply
的区别:前者应用后会将其从存储列表中删除,而后者则不会
7)git stash drop stash@{index} : 丢弃stash@{index}存储,从列表中删除某个存储
8)git stash clear : 清除存储列表中的所有stash
有冲突时,如何撤销
如果使用 git stash pop 后有冲突时,如何撤销?
可以使用 git reset --hard ,即可撤销 git stash pop 操作,将当前分支状态恢复。
而该操作后,git stash 暂存区的记录也不会被删除,可通过 git stash show 或者 git stash list 查看。