【VSCode Git】stage和stash的区别

【VSCode Git】stage和stash的区别

问题来源

用vscode提交变更的文件时,会发现2个相似的选项“Stage Changes”和“Stash Changes”
,乍一看不知道用哪个,它们有什么区别呢?
在这里插入图片描述

解析

  1. 先从单词释义看
    • stage是“阶段”,在Git中的含义是暂存区,由此可以推断,它的意思是将变更的文件放入暂存区。
    • stash是“藏匿”,也含有存放的意思,那么是存到哪里呢?
  2. 从单词释义看不出stash的作用,就翻 Git的官方文档
    • 从文档里找到了这么一段描述:Use git stash when you want to record the current state of the working directory and the index, but want to go back to a clean working directory. The command saves your local modifications away and reverts the working directory to match the HEAD commit.
    • 这段话的意思是,如果你想要记录当前文件状态,又想让工作目录回到干净的状态,就使用git stash命令。比如,当前分支有一些修改,但是不想提交,又要切换到另一个分支做一些事,这时就需要把当前的文件变更“藏”起来,也就用到了“Stash Changes”,等价于git stash

应用场景

  1. Stage Changes相当于git add xxx。可以多选,批量地将变更文件放入暂存区,比git add .好用。
  2. Stash Changes相当于git stash,将选中的变更文件“藏起来”,然后当前分支就“干净”了,可以切换到其他分支去了。
    • 那么藏起来的内容怎么恢复呢?
    • 回到刚才执行git stash的分支,执行git stash pop,就会将最近一次藏起来的内容提取出来了。(注:如果stash了好几次,要提取其中某一次的内容,可以先使用git stash list拿到stash列表,找到那次的index,然后执行git stash apply [index]命令提取出那一次存放的变更内容,如下图)
      • git stash apply xxx
  • 21
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Coder Ben

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值