【VSCode Git】stage和stash的区别

2023-05-16

【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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【VSCode Git】stage和stash的区别 的相关文章

  • 显示 master 之前/之后有多少提交分支的别名

    新的 Bitbucket Branches 页面非常棒 它显示每个分支领先 落后于 master 的提交数量 是否有显示相同信息的 Git 别名 信息应显示 分店名称 上次更新是什么时候 其背后有多少提交 有多少提交领先于 master 看
  • Eclipse Git 关键字扩展

    每次我检查 git hub 服务器的源代码时 我都需要更新源代码修订关键字 version date 等 你可能知道 Git 中的主要问题是你无法使用以下命令修改文件 提交后有关提交的信息 因为 Git 首先对文件进行校验 基本上我想要实现
  • git 2.32 git push -u origin master 没有任何反应

    I ve starting to use git github and I m stucked on how to push my codes to github I m following some tutorials and when
  • git merge 冲突的不同场景

    我试图了解 git 合并后可能发生 git 冲突的情况以及如何避免它们 我创建了一个 git 存储库并向其中添加了一个文本文件 我已将 1 添加到文本文件中并将其提交给 master 我已经从 master 创建了一个新分支 分支 2 并将
  • 有没有一个简单的命令可以将分支转换为标签?

    我即将完成将 哑快照 转换为 git 的繁琐过程 这个过程进展得非常顺利 感谢这个重命名过程 https stackoverflow com questions 6628539 how to tell git that its the sa
  • 具有单个子模块的多个存储库

    我已经找了一段时间但没有找到答案 也许我不知道该看什么 我们有一个主库 它本身就是一个存储库 我们称之为 Lib 它包含我们的大部分模块和子模块 我们还假设它的大小为 2GB 现在我们有很多项目 例如 ProjA ProjB ProjC 每
  • 哪些 git hooks 适用于“git rebase --continue”?

    我正在尝试为我的组织构建一组 git hook 脚本 我想使用的一个脚本 仅用于我自己的多个项目 将是检查git rebase continue我的代码中没有留下任何冲突标记 lt lt lt lt lt or gt gt gt gt gt
  • git-lfs 中的多个文件版本

    我正在尝试估计 GitHub 上我的项目的存储要求 并对 git lfs 如何存储多个版本的文件有一些疑问 git lfs 是否存储多个版本的文件 如果是这样 对文件的每次更改都会导致复制整个文件 还是仅存储差异 所有版本都会计入 gith
  • 为什么“git pull”在我的网络服务器上失败?

    我使用 git 来提取站点代码库的更改 文件内部的更改和文件删除是有效的 但是 当我将新文件或目录 不是空的 添加到存储库时 它不会被本地拉到网络服务器 拉动时不会显示错误消息 但在检查该文件时 它不在那里 在线的 bitbucket re
  • git push --force-with-lease 总是安全吗?

    我一直遵循的规则是 一旦 git 历史记录被推送到远程存储库 就不再修改它 但我想知道交互式变基到推送 force with lease 是否绕过了这条规则 如果强制租约成功 对其他用户来说是否完全安全 或者此策略有任何注意事项吗 预先感谢
  • 使用 git 子树时如何添加特定文件夹?

    我正在开发一个复杂的 Ionic 项目 我正在开发的许多组件和提供程序都是通用的 可以在我公司正在进行的其他项目中使用 这在软件开发中很常见 这是我提出的 Git 工作流程 该图显示了分支 my company library repo c
  • 在 Windows 下克隆 git repo 时,出现“错误:无法创建文件 <文件>...(是目录)”

    Z gt git clone git github com kennethreitz httpbin git Cloning into httpbin remote Counting objects 1073 done remote Com
  • 在git的远程存储库上创建私有分支

    我想在我们公司的 git 上构建特定的流程 开发人员在他的本地计算机上创建一个分支并在那里提交一些文件 dev 将此分支推送到远程仓库 其他开发者无法访问该分支 经过几轮推动开发人员决定发布他的更改 将他的私人分支合并到公共分支 推动该公共
  • 使用 git 合并两个截然不同的分支?

    我有我的master分支和我的verydifferentbranch它们有相同的祖先 大约 300 次提交前 现在verydifferentbranch功能完整我想把它放在master下面branch 进行变基会导致每个补丁都有很多合并冲突
  • 如何从 Git 存储库中删除选定的提交日志条目,同时保留其更改?

    我想从线性提交树中删除选定的提交日志条目 以便这些条目不会显示在提交日志中 我的提交树看起来像 R A B C D E HEAD 我想删除 B 和 C 条目 以便它们不会显示在提交日志中 但应保留从 A 到 D 的更改 也许通过引入单个提交
  • “警告:'github.com' 的 ECDSA 主机密钥与 IP 地址的密钥不同”问题

    我不知道发生了什么 但有一天 当我起床时git push我的改变是 Warning the ECDSA host key for github com differs from the key for the IP address 140
  • 如何从现有存储库中的分支创建新的 GitHub 存储库?

    I have master and 新项目分支机构 现在我想创建一个全新的存储库及其基于新项目分支的主存储库 背景 我有一个存储库 其中包含三个独立的应用程序 事情并不是这样开始的 仓库中最初只有一个应用程序 然而 随着时间的推移 业务需求
  • 使用 Homebrew 安装 Git 时出现问题 [重复]

    这个问题在这里已经有答案了 可能的重复 使用 Homebrew 升级 Git 时出现问题 https stackoverflow com questions 12362021 problems upgrading git with home
  • GIT 或 SVN 或...适用于前端开发人员

    我最近开始将一些项目导入到工作中的 Subversion 存储库中 在接下来的几周内 我希望团队中的每个人都能负责自己的源代码控制管理 我选择 SVN 而不是 GIT 的原因是我想要everyone团队中的人员 包括设计师 前端人员 集成商
  • 本地提交推送到中央服务器

    在工作中 我们使用 perforce 并被鼓励定期对其进行承诺 我对此很满意 然而 我想运行像 Mercurial 这样的东西 这样我就可以在本地提交正在进行的工作并且不一定编译 运行的东西 然后从中定期提交到中央 perforce 服务器

随机推荐

  • FreeRTOS-Systick笔记

    1 在Cortem M内核中 xff0c 继承了systick的定时器 xff0c 属于NVIC的一部分 xff0c 异常类型为 15 systick是一个24位的向下计数器 2 Systick寄存器 3 如何使用该定时器 1 xff09
  • FreeRTOS-任务调度

    1 系统配置完成systick模块后 xff0c 通常下每当产生一个systick中断就会运行SysTick Handler 2 分析void xPortSysTickHandler void a 通过操作寄存器basepri关闭一些中端
  • FreeRTOS-延迟分析vTaskDelay

    void vTaskDelay const TickType t xTicksToDelay 这个函数比较简单 xff0c 主要分析prvAddCurrentTaskToDelayedList这个函数 xff1a 将该任务挂到延迟列表里面
  • 华为荣耀刷机失败,不断重启的解决办法

    如果你因为用第三方的recovery刷了官方的rom xff0c 那么就会出现不断重启的情况 xff01 解决办法就是先刷回华为官方的recovery xff0c 再通过三键强刷一开始的华为官方rom xff0c 即可成功救砖 xff01
  • FreeRTOS笔记---列表和列表项

    1 列表结构体 xff1a typedef struct xLIST listFIRST LIST INTEGRITY CHECK VALUE 用来检查数据的完整性 configLIST VOLATILE UBaseType t uxNum
  • FreeRTOS学习笔记-----队列

    1 创建队列 define xQueueCreate uxQueueLength uxItemSize xQueueGenericCreate uxQueueLength uxItemSize
  • Autosar CAN通讯——CANSM

    关于CANSM参考 xff1a https zhuanlan zhihu com p 126073070
  • UDS一些时间参数

    最近在做 xff21 xff55 xff54 xff4f xff53 xff41 xff52 诊断 xff0c 发现在诊断中有一些时间参数需要配置 xff08 其实这个时间参数 xff21 xff55 xff52 xff4f xff53 x
  • sql server 数据库开发 知识点

    sql server 数据库开发 1 含义 xff1a 数据库设计实际上就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程 E R图组成包括 xff1a 矩形表示实体集 椭圆表示属性 菱形表示关系 直线用来连接实体集与属性 x
  • Activiti学习笔记一 工作流基本概念

    最近刚接触流程引擎这一概念 xff0c 对Activiti进行学习 xff0c 感觉正在入门中 xff0c 整理下自己的学习笔记把 xff01 1 xff1a 工作流的概念 工作流 Workflow xff0c 就是 业务过程的部分或整体在
  • Activiti学习笔记六 流程实例 任务 执行对象控制流程执行

    上一篇我们看了流程定义 xff0c 我们接下来看一下流程实例 xff0c 任务 xff0c 和执行对象 流程实例 任务的执行 1 流程图 2 部署流程定义 private final ProcessEngine processEngine
  • datetimepicker 控件验证问题

    34 baseStudents activistTime 34 trigger 39 blur 39 validators notEmpty message 39 确定积极分子时间不能为空 39 span class hljs tag lt
  • eclipse中SVN分支合并到主干

    在项目开发中 xff0c 需要添加一些新的功能 xff0c 但是又不想影响到其他开发人员的项目进度 xff0c 所以决定使用SVN分支进行开发 xff0c 分支开发完毕后再合并到主干 本文介绍如何在eclipse中合并分支到主干 要想将分支
  • 阿里云服务器

    一年多之前 xff0c 也就11年5月份的样子 xff0c 阿里云云服务器产品线终于上线了 但那时候 xff0c 国内完全没有能称得上云服务器的 xff0c 很多小公司就是搞个VPS就叫云服务器了 以至于阿里云云服务器刚出来的时候 xff0
  • 双控机制信息化系统管理平台建设的趋势和必要性

    什么是安全双控体系 xff1f 双控体系即风险分级管控和隐患排查治理双重预防机制 xff0c 目的是对生产经营单位内的所有安全隐患进行系统性的全面排查 xff0c 结合相关安全隐患的危险程度 发生的可能性以及带来的严重后果进行分级别的管控
  • mac 下 使用 iterm2 配置及快键键使用

    mac 下 使用 iterm2 配置及快键键使用 标签 xff08 空格分隔 xff09 xff1a mac 之前介绍过一篇关于mac 下使用和配置 iterm2的blog 今天这篇稍微详细一点介绍 并且搭配 zsh zsh 会单独开一篇博
  • 登录报错后,状态码是401并弹出登录框

    前后端分离的项目 xff0c 登录失败后会弹出一个非前端页面登录框 这是因为登录失败 xff0c 返回的响应表头里添加了WWW Authenticate属性 WWW Authenticate Basic realm 61 34 oauth2
  • 解决secureCRT账号密码正确,无法连接服务器,那大概因为不支持新的密钥交换算法

    连接比较新版本的linux类服务器 xff0c 是否出现下面这些问题 xff1f 或者是openstack新建centos7镜像的时候 xff0c 无法连接新创建的centos7系统 我百度或者谷歌好像都没有找到答案啊 xff0c 所以才写
  • 树莓派SSH连接-SSH服务安装与开机自动启动

    1 SSH连接 SSH连接比Telnet远程桌面连接使用更为安全 xff0c 已经成为行业标准 使用SSH连接树莓派 xff0c 可以对树莓派进行远程控制与编程开发 xff0c 在没有桌面环境的条件下使用SSH连接是非常合适的选择 第2节和
  • 【VSCode Git】stage和stash的区别

    VSCode Git stage和stash的区别 问题来源 用vscode提交变更的文件时 xff0c 会发现2个相似的选项 Stage Changes 和 Stash Changes xff0c 乍一看不知道用哪个 xff0c 它们有什