最简单的git图解(git stash)

大家平时开发过程中肯定遇到过这样的情况:代码写了一半,但是需要紧急修改一个bug,还是在当前项目中修改,这时怎么办呢?把写了一半的代码进行提交?可能编译还通不过,或是启动不了,要是直接提交了,就会对该项目其他开发人员产生影响。就算编译、启动都没问题,写了一半的代码也不是一个完整的、有具体意义的提交。那怎么办呢?这就引出了我们今天要了解的一个命令了:git stash。

使用场景及方式

简单来说,git stash命令的作用就是将暂存区里面的东西进行暂存。额,好像有点绕。首先必须了解什么是“暂存区”。我们的代码仓库实际上分为三个区:工作目录、暂存区、git仓库。其中工作目录中放的就是实际的文件,暂存区放的索引,git仓库里面放的是目录树(可以理解为分支链):

如上图所示,所有git add之后但还没有git commit的文件会被放入到暂存区,暂存区里面的文件才会被git跟踪到,如果新建的一个文件,这个文件没有被git add,那么git是跟踪不到这个新建的文件的。 而git stash 就是把当前暂存区内的所有文件移动到一个单独的“缓存区”里面去,这个“缓存区”是一个栈结构:

 这样做之后,我们的暂存区就空出来了,此时,我们就可以去修复紧急bug,等bug修复完提交之后,再返回头来将我们“缓存区”里面的内容git unstash出来,继续开发:

 这就是git stash的主要使用场景以及使用方式了。接下来我们详细看一看,这git stash这个命令的详细使用规则。

命令详解

使用 git stash save "xxx"  可以将当前暂存区里面的文件移动到缓存区里面去,可以写一些缓存说明用来标识,因为一个缓存区里面可以有多个缓存。

使用 git stash list 可以查看缓存区里面的所有缓存。

使用 git stash pop 可以将缓存区(栈结构)中最上面的一条缓存pop出来(也就是移出来,缓存区里面的这个缓存会被删除),并应用到暂存区。

使用 git stash pop "xxx" 可以将缓存区里面指定的某条缓存pop出来。

使用 git stash apply 会将缓存区(栈结构)中最上面的一条缓存应用到暂存区,注意此时不会将缓存区里面的这个缓存删除,

使用 git stash apply "xxx" 会将缓存区里面指定的某条缓存应用到暂存区。

使用 git stash drop "xxx" 可以将某条缓存进行删除。

使用 git stash clear 会将整个缓存区进行清空。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值