Git - git stash基本使用

在自己分支改代码改的正爽,这个时候来了个bug需要切到develop分支,这个时候想切换分支但是当前分支改动一大堆,既不想提交自己分支没改完的代码,又不能撤销,就可以使用git stash这个命令,它可以将你现在的工作现场保存在一个栈里,等你去别的分支改完bug回来后,再使用git stash apply命令,就可以恢复你的工作现场了,回来后所有你修改的代码仍然是未修改的状态,这样可以继续你的思路,看看哪些是正在修改的地方而不至于匆忙commit回来后漏掉之前修改的地方了。
用过的人会觉得很简单,没用过的人还得在网上搜一圈,感觉也不是很直观,下面说一下简单使用:

一.stash

工作现场

可以看到我现在在自己的test分支,在项目中的某一个文件里加入了一个fuck方法,现在我吃了一个bug,需要切换到develop分支而我又不想提交这个fuck方法,那么我就先stash一下,这里我用的是Sourcetree,命令行也是一样的。


stash.png

点击Sourcetree的stash按钮。


stash message

这里可以输入一个statsh的message,和commit时的message一样,方便记录你的stash信息,下面有个选项keep staged changes暂时没发现干啥用的,可勾可不勾。


stash完

可以看到stash完以后当前分支已经看不到任何修改了,这样我就可以随便切换到我想去的分支了,假设我切到develop分支改掉了那个bug,现在又切会test分支,现在我要恢复刚才我修改fuck方法的那个现场,有两种方式,1.Sourcetree 2.命令行。

二.恢复

1.Sourcetree恢复

image.png

最新版Souretree左边栏最底部就能看到一栏STASHES,这里看到了我之前的在test分支上的stash,直接双击


stash

弹框出来问你是否恢复后要删除这项stash,删不删随你,这里我就不删了。

2.命令行恢复

ternimal

(1).从Sourcetree打开终端。

git stash apply

(2).输入git stash apply命令

以上两种方式结束后:


恢复现场

是不是很惊喜,你修改的文件和代码,又回到之前的状态了,还是那个熟悉的fuck方法。

三.注意

注意点:对于新加入的文件,在stash的时候一定要将它们勾选到staged files(暂存区)中,不然是不会被stash的。

unstaged files

上面的dddd.h、dddd.m和一张蒙层.png都是新加入的文件,这几个文件没有被勾选进staged files(暂存区)是不会被stash的,应该像下面这样


staged files

以上基本就是stash的快速入门了,当然他也有高级的用法,目前项目中我觉得会这种最基本的就可以解决我开头提到的痛点了。

四.总结

1.点击Sourcetree上方的stash按钮,输入message
2.点击Sourcetree上方的Ternimal按钮
3.在Srourcetree左下方切回stash或者在命令行中输入git stash apply
3步搞定,是不是非常的酷😎。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容