git-命令行-使用 git stash 暂存代码

这个命令的场景:

当我们在某分支开发功能的时候,功能开发到一半,业务方突然传来一个噩耗,有一个bug需要紧急处理一下,优先级为0,这时我们该怎么办呢???

  • 提交我们的修改--这样会产生一次无意义的提交
  • 放弃我们写的代码--我们并不傻

那我们该怎么办呢?

方案

//使用stash命令将修改还未提交的代码存储到缓存区
git stash

//切换到需要解决bug的分支
git checkout <分支名>

//修改完bug后回到当前开发分支,取出缓存中的代码
git stash pop

查看修改

那么我们确定你操作成功了呢?

git stash show //查看刚才暂存的修改

我们的修改存储到什么位置了?

当我们使用 git init给项目添加版本控制的时候,会在项目路径下生成一个 .git 隐藏文件夹。.git 中存储着版本管理的所有信息。 

  • .git/refs/stash 中,存储的是最后一个 stash 对应的节点指针
  • 在 .git/log/refs/stash 中可以看到我们全部的 stash 记录信息

多个 stash 的情况我们该怎么办?

存储多个stash

//提交多个stash,我们需要区分每次提交的内容,这样我们可以给每次提交起一个名字来区分
git stash save <名称>

多个stash取出方式

git stash pop //取出最近一次暂存并删除记录列表中对应记录

因为 git stash pop 是弹出栈顶的一个 stash ,也就是最后一次存储的 stash。在存储多个stash 时,想取出非栈顶的一个的情况下,是不适用的。

这个时候要使用:

git stash list //查看暂存区的所有暂存修改

$>git stash list
stash@{0}: WIP on book: 51bea1d... fixed images
stash@{1}: WIP on master: 9705ae6... changed the browse code to the official repo


git stash apply stash@{X} //取出相应的暂存
git stash drop stash@{X} //将记录列表中取出的对应暂存记录删除

清空stash栈

git stash clear

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值