Debug-010-git stash的用法及使用场景

问题原因:

        其实也不是最近,就是之前就碰到过这个问题,那就是我正在新分支开发新功能,开发程度还没有到可以commit的程度,我不想提交(因为有些功能没有完全实现,而且没有自测的话很容易有问题,提交了之后看修改过的代码也不方便,而不提交又不能切换分支。),这时候生产环境有紧急问题需要改bug,那我要怎么在不提交代码的情况下切换分支去修改bug呢?(我以前的做法就是直接在新功能的分支上提交一下代码,然后再切到有bug的分支上,其实这样也没啥,就是对自己要求高了之后,感觉不应该在提交记录中存在一次这样的记录)因此git stash应运而生,就可以解决这个情况。

介绍:

git stash :

它会保存当前工作进度,会把暂存区和工作区的改动保存到一个未完结变更的堆栈中;

执行完这个命令后,再运行 git status命令,就会发现当前是一个干净的工作区,没有任何改动。

备注:git stash并不会把代码提交到远程仓库,如果需要添加备注说明可以用下面这个:

git stash save '备注'

相关命令:

//查看所有隐藏, 每一行的冒号前面的字符串就是标识此隐藏的id

git stash list	


// 重新显示标识为 id 的隐藏(list中不会删掉记录)

git stash apply	 + id


//git apply恢复隐藏后, 需要手动删除 list 列表中的记录

git stash drop + id


//恢复最新的进度到工作区 (list中会删掉恢复id的那一条记录)

git stash pop	


//恢复指定的进度到工作区

git stash pop + id

一般使用经验:

(1)一般的话其实只会有一条记录即可,但是还是应该先用git stash list看一下stash的记录

避免出错。例如有以下四条记录:

如果想回到3版本,就使用:

git stash apply 3

这时候其他版本不想要了,就删掉即可,3版本恢复之后也可以把list中的3也删除掉。

git stash drop 0
git stash drop 1
git stash drop 2

(2)所以一般的流程就是:先git stash一下,然后git branch 查看分支,再然后git checkout去切换分支,然后改bug,完了提交。最后切换来新功能分支,在使用git stash list 先查看,接着git stash apply (+id)(或者git stash pop(+id))去恢复代码即可。

(3)注意git stash apply和git stash pop的区别(这个看个人习惯,其实我们项目中放在stash 里面估计也就一条记录,所以恢复完直接删掉也行

(4)补充一下:如果list中的记录比较多,可以使用git stash clear一键全清除,但是要谨慎哦。

总结:

        现在可以去test一下,敲一遍就明白区别了。

补充:2024.7.01:今天又知道了一件事情,亲身踩坑。。。

git  stash list 看到的暂存的记录是各个分支公用的,都可以看见的,你在a分支创建的暂存的一条记录,切换到b分支也同样是可以看到的,同时。你在b分支删除这条记录,那么回到a分支,这个记录也会不见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农小白-RMS

谢谢老板

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值