Git - stash用法

7

场景

大前提,你用的版本工具是git。

你正在开开心心的coding,东写写西改改。突然!一个人对你说道“改个BUG”。如果这个BUG和你正在搞的代码可能相关。怎么办?立马改,为自己埋了一个雷。过会改,处理不当,BUG高于需求。

此场景稀松平常。BUG随时有,但你能做到随时改吗?git stash拯救你。git的强大就是让你各种切换,伸缩自如。

使用

保存

使用git stash保存当前的操作,如果不这么做,你在切换到别的分支之前就一定要提交已经有的改动。但你当前的操作尚未完成,所以要暂时保存起来。

查看

直接使用git stash list就可以了。

shellMyPC:project limi$ git stash list
stash@{0}: WIP on master: 3d72f0b clear file
stash@{1}: WIP on start-test: fabaa87 fix bug

恢复

git stash pop stash@{num}num 是你要恢复的操作的序号,所以你最好在回复前用git stash list查看一下。

git stash pop命令是恢复stash队列中的stash@{0},然后从记录就删除,就是常规的pop操作。

删除

stash存的不要过多,不然你也不知道哪个是哪个,最好随时清一清。
把所有的记录都清空掉用git stash clear

UPDATE

谢谢依云的补充说明

git stash save some_msg 这样就比较容易区分了。另外 git stash 是个一堆合并提交的分支,可以在 tig 里慢慢看。其实 git-stash 就一 shell 脚本……。

你可能感兴趣的

依云 · 2015年02月15日

git stash save some_msg 这样就比较容易区分了。另外 git stash 是个一堆合并提交的分支,可以在 tig 里慢慢看。其实 git-stash 就一 shell 脚本……

+1 回复

limichange 作者 · 2015年02月15日

刚入门git,多谢。

回复

coder · 2016年12月29日

恢复不是用 git stash apply stash@{num} 吗?

回复

0

git stash apply 不会删除掉这条 stash 的记录。 而 git stash pop stash@{num} 则会从 stash 列表中删除掉这条记录。

JRoger · 2017年08月18日
章鱼哥 · 2017年01月23日

+1

回复

farmerz · 2017年10月19日

有错误吧,恢复不是用apply吗,删除用 drop/prop

回复

0

git pop=git apply+git drop

虫子 · 2017年12月08日
载入中...