git查漏补缺之 stash
Start
- 最近在工作的过程中,遇到 git 中的
stash
暂存这个命令,感觉非常有用,写一个博客记录一下。
1. stash
首先第一个就是 stash
,英译过来的意思就是 存放/贮藏。
主要的使用场景:
我正在分支A上开发功能A,突然叫我去临时解决B分支上的bug,我们需要将分支切换到B分支。但是分支A,我修改了一部分内容并不想commit
提交,这个时候就可以使用 stash
命令,将我们的修改暂存起来。
1.1 git stash
将当前的改动存储起来,当前分支还原到没有改动的位置,注意此时你所有的改动内容,会被存储在 stash
中。
1.2 git stash list
列表的形式查看当前stash的所有内容
1.3 git stash save '中文记号'
将当前的改动存储起来,并且添加一些中文记号
1.4 git stash pop
默认恢复git栈中最新的一个stash@{num},建议在git栈中只有一条的时候使用,以免混乱
注:该命令将堆栈中最新保存的内容删除
1.5 git stash apply
将堆栈中的内容恢复到当前分支下。这个命令不同于 git stash pop
。
-
该命令不会将内容从对堆栈中删除,也就是该命令能够将堆栈的内容多次运用到工作目录,适合用与多个分支的场景。
-
其次,这个命令不同于
pop
,我们可以指定分支的序号,指定恢复。-
在我实操的过程中,发现最后
git stash save
保存的内容,序号在最前面(也就是说,最新保存的内容,序号是0,越新序号越小)。使用方法:git stash apply stash@{$num}
-
1.6 其他
-
git stash drop
:从堆栈中移除指定的stash。使用方法:git stash drop stash@{$num}
-
git stash clear
:移除全部的stash -
git stash show
:查看堆栈中最新保存的stash和当前⽬录的差异,显⽰做了哪些改动,默认show第一个存储
End
- 以后再遇到需要暂存代码,切换分支的场景,我们就不会慌了,核心逻辑可以借助
git stash
命令