这是“git stash”操作的有效可视化吗?

2024-03-19

我找不到很好的可视化git stash手术。所以我根据互联网上一些罕见的评论创建了自己的。

这个可视化正确吗?

编辑说明:我需要更改颜色stash@{0}因为它不是分支。

我的藏品存储在哪里.git目录?我认为这是一个参考并存储在refs, right?


Legend:

  • C1、C2 - 提交
  • Idx - 指数
  • WD-- 工作目录
  • 虚线和虚线边框 => 可免费进行垃圾收集

重新设计的图像


之前的“git stash“ 之后git stash“图表本质上是正确的(有两个新的提交,不在任何分支上,由refs/stash aka stash@{0})。该图中缺少的是索引和工作树本身以相同的方式重置git reset --hard做到了——事实上,using git reset --hard—after git stash.

那个“之后git stash branch“图表是[编辑以匹配新图表] 不过画起来要困难得多:git stash branch使用idx and wd提交恢复索引和工作树的状态,然后完全丢弃它们 from refs/stash。这两个提交现在根本没有名称,因此有资格进行垃圾收集(git gc现在可以在它们过期后立即删除它们,根据“修剪时间”,基于gc.pruneExpire在您的配置中)。新的分行名称test指向父提交idx and WD指出,回来时idx and WD仍然保证存在。

此时立即进行新的提交(git stash branch <name> && git commit)将从恢复的索引中进行新的提交,如更新的绘图中所示。

我的 .git 目录中存储的内容存储在哪里?

提交本身就是提交,因此像任何其他提交一样存储在.git/objects/(作为松散或包装的物体)。

我认为它是一个引用并存储在 refs 中,对吧?

Yes, refs/stash是一个参考。这git stash代码使用(或滥用?)reflog 条目refs/stash管理“存储堆栈”,因此哈希 ID 都在refs/stash本身,以及所有在任何refs/stashreflog 条目,很重要:他们保留WD通过直接指向它来活着提交,因此也保留idx提交(^2或第二父母WD)活着(因为它可以通过WD犯罪)。

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

这是“git stash”操作的有效可视化吗? 的相关文章

  • 有时 git 告诉我每个文件都是新的且未暂存?

    我将对文件进行更改 转到 Windows UI 的 GitHub 提交我的更改 然后点击同步按钮 然后它说错误 尝试使用 shell 代替 所以我进入 shell 并输入git status 它告诉我存储库中的每个文件都是新的且未暂存 大约
  • 如何使用 BFG 删除受保护的提交

    使用 BFG 清理存储库时 https rtyley github io bfg repo cleaner https rtyley github io bfg repo cleaner 遇到以下情况 Protected commits T
  • 从 Jenkinsfile 中获取有关其他分支的信息

    Jenkins Blue Ocean 与链接的 Bitbucket Server 实例在同一本地网络上运行 Jenkins 中的多分支项目能够为本地 Bitbucket 服务器上链接的 Bitbucket 存储库的每个分支创建一个分支 但在
  • 错误:GitHub 目前无法显示这么大的文件 - 但该文件只有 1.06 MB [已关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我通过两种不同的方式将 HTML 文件上传到 GitHub 存储库 拖放以及使用终端上的 Git 添加 提交 推送 在这两种情况下
  • Visual Studio 2013删除已删除的git分支

    我遇到这个问题 在 VS2013 中 当我从源创建一个新分支时 源分支的下拉列表列出了曾经创建的所有分支 这包括长期从本地存储库和远程 源存储库中删除的分支 如何删除已删除的分支 Visual Studio 将它们保存在本地缓存中 您可以从
  • 如何更改 Bitbucket 中的 git 提交消息?

    我需要更改 Bitbucket 中的旧 git 提交消息 我试过git rebase i并重写了我的消息 但是当我拉取并提交时 它只是将旧消息保留在 Bitbucket 中并合并了我的更改 这基本上是 4 个步骤的过程 但如果多个团队成员在
  • 将更改恢复到特定提交

    我为自己创建了一个新分支 现在我需要一次将多个提交从主分支恢复到特定提交 我知道有一个安全的命令可以使用git revert no commit COMMIT TO REVERT FROM COMMIT TO REVERT TO 这给了我e
  • Git:当文件位于嵌套 git 存储库中时强制“添加”

    我想添加一个包含在父存储库中的嵌套 git 存储库中的文件 我正在开发一个在我的项目中使用的库 然而git add nested repo myfile不做任何事情 我可以尝试重命名 git文件在进行提交时 但是当我重命名回时 我担心会出现
  • 合并git中2个不同分支中具有相同名称的2个文件

    我目前有一个名为test1在一个名为branch1创建自master另一个文件也命名为test1在一个名为branch2也创建自master 如果我合并 master 中的两个分支 这两个文件中编写的代码会发生什么 As 阿米尔回答了 ht
  • 克隆包含所有子模块的 git 存储库

    我有一个工作 git 存储库 其中包含几个子模块 通过克隆不同的存储库获得 现在 我想要复制整个存储库 包含所有子模块 通过使用推送或克隆到另一台机器上的裸 git 存储库 我很高兴失去子模块的历史记录 我只是对保留它们的内容感兴趣 这可能
  • 如何使用它们的更改来解决选择冲突?

    My git cherry pick FOO产生了冲突 我可以检查冲突的文件并删除之间的行 lt lt lt lt lt lt lt and 以及冲突标记本身 但我希望有一种更简单的方法 我觉得svn等同于选择theirs conflict
  • git 提交消息的 vim 语法高亮显示 - 自定义 commentchar

    如上所述在这个答案中 https stackoverflow com a 14931661 835945 从 Git 1 8 2 开始你可以使用core commentchar配置值将提交消息注释更改为默认值以外的其他内容 哈希标记或哈希符
  • 如何在 Android Studio 中比较两个 Git 分支?

    我不确定是否可以将主分支 或任何其他分支 与当前功能分支进行比较 例如GIT does 我想要两个分支 主分支和功能分支 之间的差异 以便我可以在合并之前比较差异 我发现 Git UI 对用户不太友好 就像在 AS 中一样 我可以遍历代码并
  • 如何在 git diff 中按标点符号拆分单词?

    我对以下命令有一些运气 git diff color words lt gt space lt gt 但它似乎没有在第一个字符类中正确地否定方括号 我试过这个 git diff color words lt gt space lt gt 为
  • 使用 Git 的 Spring Cloud 配置服务器 - 无法克隆或签出存储库连接超时

    我正在使用 GIT 在 Spring Cloud Config Server 上进行 POC Spring Boot 1 5 3 RELEASE 爪哇1 8 弹簧工具套件https github com kishornpatil https
  • Git:结帐而不运行结帐后挂钩

    我有一个我喜欢的结帐后挂钩 大多数时候 但有时我知道运行它会浪费时间 或者 因为它会删除并重建我的开发数据库 所以我不希望它去做它的事情 有没有跳过钩子的 git 选项 公平地说 我已经开始寻找一个了 我认为没有命令行选项可以完成您想要的操
  • 克隆存储库而不将其设为原始远程存储库

    我正在从一台将被擦除的计算机上克隆一个 git 存储库 是否可以在不创建原始存储库的情况下克隆存储库origin master 或者我是否需要克隆它 然后删除远程分支 这是通过git remote rm origin Edit 存储库只有一
  • 具有单独 work_tree 的 Git 子模块

    我按照本页上的教程使通过 Git 部署我的网站变得简单 http toroid org ams git website howto http toroid org ams git website howto 到目前为止一切都很好 但是我最近
  • 为什么cherry-pick总是会导致合并冲突?

    我正在从发布分支中挑选特定的提交到我的本地工作副本中 每次我从发布分支中挑选一个提交时 我都会遇到必须解决的合并冲突 即使更改看起来微不足道 例如 const char kApplicationVersion Develop const c
  • 在 git 子模块中签出分支

    如何从子模块内更改分支 当我跑步时git branch从子模块内 我看到以下输出 gt git branch HEAD detached from 229a7b2 master 我如何将自己置于一个新的分支上 喜欢development 只

随机推荐

  • nginx 配置到 kubernetes ingress-nginx

    我的 nginx pod 具有以下配置 此处部分显示 upstream something 1 8080 server something 1 namespace 8080 upstream something 2 8080 server
  • 使用元素的样式属性作为 if 或 for 循环 javascript 中的条件

    我在理解 If 语句 或 For lopp 中的条件时遇到问题 我创建了像菜单按钮一样的 div 当我单击该 div 时 会显示包括此菜单按钮在内的所有菜单 而且文本 div 内的段落 也会更改为 关闭菜单 我试图在单击 菜单 按钮时启动的
  • Postgres 在命令行上使用外部编辑器未运行查询

    当我跑步时 e登录时在命令行上psql命令行工具 我的默认编辑器 sublime text 忠实地打开 但是 当我输入这样的查询时 create table tutorials tutorial id serial primary key
  • 返回r中符合条件的值

    我想根据分数标准返回另一列中具有匹配条件的值 如果变量中没有分数 我想获取最接近的较大值 这是数据集的快照 ids lt c 1 2 3 4 5 6 7 8 9 10 scores a lt c 512 531 541 555 562 56
  • 如何使用 CloudFormation 或 CDK 将另一个 AWS 账户的事件总线指定为 EventBridge 规则的目标?

    如何使用 CloudFormation 或 CDK 将另一个 AWS 账户的事件总线指定为 CloudWatch 规则的目标 以下是使用 CDK 的示例规则 我尝试将 CodeDeploy 事件发送到另一个帐户 Rule codedeplo
  • 如何在 Mac OS 上使用 Java 获取 User ~/Library 路径

    在 Mac OS 上 据我了解 如果每个人都可以读取文件 则应该将信息存储在 Library Application Support Your App Name 中 然而 在写作方面 这是一个仅限管理员的文件夹 因此 如果要写入数据 则需要
  • 如何在内部类型声明中重用类型变量

    作为 Haskell 学习过程的一部分 我喜欢显式地键入函数的类型声明 我希望能够对 where 子句中定义的函数执行此操作 但我不知道如何指定 where 子句中的类型变量应表示与外部类型声明中的某些类型变量相同的类型 例如 以下代码 f
  • avd 模拟器支持 Google Play 商店吗?

    经过一番谷歌搜索后 我无法找到这个问题的答案 google play store 是否正式支持 avd 模拟器 我知道它曾经被停止过 然后我听说它在特定版本的android之后又被恢复了 我正在使用 avd android 版本 4 4 3
  • 如何在 iOS 中使用 Swift 运行命令行命令或任务?

    我正在用 Swift 为运行 iOS 12 或更高版本的越狱设备编写 iOS 应用程序 它是一个包管理器 为了安装包 我需要运行一个命令 该命令是dpkg i PACKAGE ID control 为了实现这一点 我做了以下功能 func
  • 无需服务器端代码即可在 Firebase 中搜索

    我正在尝试获取名称包含 Firebase 给定字符串的所有用户 例如 如果我有这些用户 Devid Andy Bob 我希望获得名称中包含 D 的所有用户 因此我希望得到这样的结果 Devid Andy 这是我的 Firebase 目前的结
  • GWT - 2.1 用于解析自由文本的 RegEx 类

    我正在努力应对com google gwt regexp shared RegExp类 只是想从字符串中解析电话号码并获取某个数字的所有出现 但似乎只能获取第一个出现 我知道 java 它工作的地方 和 GWT 之间的正则表达式存在细微差别
  • 在 iOS 5.1 设备上运行的程序无法使用 Xcode 4.5 找到 SDK

    当我在 iOS 5 1 模拟器上运行我的项目时 它显示 yld lazy symbol binding failed Symbol not found objc setProperty nonatomic copy Referenced f
  • Entity Framework Code First Fluent Api:向列添加索引

    我正在运行 EF 4 2 CF 并希望在 POCO 对象中的某些列上创建索引 举个例子 假设我们有这个员工类别 public class Employee public int EmployeeID get set public strin
  • 抢占和上下文切换的区别

    一点介绍 我目前正在编写一个小型 读微型 RTOS 内核 它应该与内核中的大多数内容是一体的 然而 我找不到关于下面列出的一些事情的太多信息 这会很有帮助 除此之外 它实际上不是某种大学项目 而是我按照自己的意愿做的事情 回答所有问题的一个
  • 从 SQL 查询中仅选择列名

    作为一个例子 我在这里有这个查询 SELECT DISTINCT convert varchar 10 PickupDate 105 AS Pickup dates FROM info dbo A Query Detail AS D INN
  • 使用c++调用和使用Windows语音识别[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在制作一个涉及使用 Windows 语音识别的应用程序 我正在考虑使用 C 来做到这一点 因为我对这种语言有一些经验 我想要使 用语音
  • 不能始终如一地将形式带到前台

    我尝试了几种方法 但没有一个起作用 我的表单在单击 NotifyIcon 时应该出现在所有 Windows 的前面 所以这是我尝试过的 private void notifyIcon1 MouseDown object sender Mou
  • 在实体框架代码优先初始化程序中设置数据库排序规则

    我想在 Entity Framework Code First 创建数据库时设置数据库的默认排序规则 我尝试过以下方法 public class TestInitializer
  • jQuery,为什么倒回播放速率不起作用?

    我的快进播放率工作正常 现在我尝试使用负数的倒带部分 但它不起作用 w3school 说使用负数来倒带 http www w3schools com tags av prop playbackrate asp http www w3scho
  • 这是“git stash”操作的有效可视化吗?

    我找不到很好的可视化git stash手术 所以我根据互联网上一些罕见的评论创建了自己的 这个可视化正确吗 编辑说明 我需要更改颜色stash 0 因为它不是分支 我的藏品存储在哪里 git目录 我认为这是一个参考并存储在refs righ