- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
给定一个简单的存储库
$ touch empty ; git add empty ; git commit -m 'My commit'[master (root-commit) e9cc922] My commit 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 empty$ git tag -a -m 'My tag' mytag
我们注意到其中一件事情与其他事情不同,强调如下。为什么树对象将 SHA-1 哈希直接编码为 20 个无符号字节的序列,而提交和标记将它们编码为 40 个 ASCII 十六进制数字?
我在调查 answer to a related question about git internal storage 时注意到了差异.
$ for f in .git/objects/??/* ; do echo $f ; openssl zlib -d < "$f" | xxd ; echo ; done.git/objects/41/7c01c8795a35b8e835113a85a5c0c1c77f67fb00000000: 7472 6565 2033 3300 3130 3036 3434 2065 tree 33.100644 e00000010: 6d70 7479 00e6 9de2 9bb2 d1d6 434b 8b29 mpty........CK.)00000020: ae77 5ad8 c2e4 8c53 91 .wZ....S..git/objects/da/867754dac38858c708292f49de41b7eff6f5d700000000: 7461 6720 3133 3400 6f62 6a65 6374 2065 tag 134.object e00000010: 3963 6339 3232 3632 6561 3734 3138 3864 9cc92262ea74188d00000020: 6530 3436 6563 6166 3265 3363 3063 3061 e046ecaf2e3c0c0a00000030: 3436 3966 3734 320a 7479 7065 2063 6f6d 469f742.type com00000040: 6d69 740a 7461 6720 6d79 7461 670a 7461 mit.tag mytag.ta00000050: 6767 6572 2047 7265 6720 4261 636f 6e20 gger Greg Bacon00000060: 3c67 6261 636f 6e40 666f 6f2e 696e 7661 <gbacon@foo.inva00000070: 6c69 643e 2031 3435 3737 3035 3338 3820 lid> 145770538800000080: 2d30 3630 300a 0a4d 7920 7461 670a -0600..My tag..git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c539100000000: 626c 6f62 2030 00 blob 0..git/objects/e9/cc92262ea74188de046ecaf2e3c0c0a469f74200000000: 636f 6d6d 6974 2031 3732 0074 7265 6520 commit 172.tree00000010: 3431 3763 3031 6338 3739 3561 3335 6238 417c01c8795a35b800000020: 6538 3335 3131 3361 3835 6135 6330 6331 e835113a85a5c0c100000030: 6337 3766 3637 6662 0a61 7574 686f 7220 c77f67fb.author00000040: 4772 6567 2042 6163 6f6e 203c 6762 6163 Greg Bacon <gbac00000050: 6f6e 4066 6f6f 2e69 6e76 616c 6964 3e20 on@foo.invalid>00000060: 3134 3537 3730 3531 3736 202d 3036 3030 1457705176 -060000000070: 0a63 6f6d 6d69 7474 6572 2047 7265 6720 .committer Greg00000080: 4261 636f 6e20 3c67 6261 636f 6e40 666f Bacon <gbacon@fo00000090: 6f2e 696e 7661 6c69 643e 2031 3435 3737 o.invalid> 14577000000a0: 3035 3137 3620 2d30 3630 300a 0a4d 7920 05176 -0600..My000000b0: 636f 6d6d 6974 0a commit.
最佳答案
在comment关于你的问题 Philip Oakley提到在 git 邮件列表中找到了一些东西,但不幸的是没有进一步详细说明。
我在浏览邮件列表时发现的所有内容都是 these两个threads其中 Jakub Narębski还有asks (2011)
What was Linus thinking?!?
和tells (2013) 他
[...] always wondered why this is the sole object format where SHA-1 is in 20- byte binary format and not 40-chars hexadecimal string format
但没有得到任何反应/回应。
我也很想知道邮件列表中是否还有其他帖子,是否真的有某种解释,或者 Philip Oakley 是否也只考虑了其中一个线程(或另一个没有解释的线程)。
正如我提到的第一个线程(从 2011 年开始)实际上最初是关于“git cat-file -p
不一致”的,Philip Oakley 也提到了他看到的线程“与 git cat- * 命令”我想这可能是他记得的那个。 :/
(这并没有真正回答问题,但至少表明这种不一致甚至让 git core devs 感到困惑。因为我是新用户,我不能将其作为评论发布)
关于git - 为什么 git 树对象不以与提交和标签相同的方式对 SHA-1 哈希进行编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35942637/
所以我使用一个带有整个 block 的标签作为链接,它是一个产品展示,所以你点击它会转到产品页面。现在我创建了一个标签作为链接到购物车页面的按钮。所以我让它工作,但是当我点击购物车按钮时,两个页面都会
根据 Web 标准,创建带有标题 1 的链接的正确代码是什么? 是吗 stackoverflow 或 stackoverflow 谢谢 最佳答案 根据网络标准,您不能将 block 元素放入内
在Java中它是这样写的..当我移植这段代码时...意识到没有这样的东西 break 和continue . 我知道这些命令没有包含在内,因为在使用带有命令的 goto 时必须有一种更简洁的方法来执
我们有一个相当标准的发布过程,使用 Visual Source Safe 在发布之前标记构建。这允许我们在出现任何问题时从该标签中获取,并在需要更改时使用它进行分支。 我们有几个不同的项目,并且总是使
我必须创建一个搜索内容,其中包含搜索框、标题和段落描述。默认情况下,描述被禁用,当我输入一些与描述文本匹配的文本时,描述段落标签应该打开。一些匹配的演示是这样的: [ fiddle ][1] 但默认情
我一直在阅读有关 的文档标签,我似乎无法理解它与简单地使用 有何不同那是 display: none; 文档:template tag 例子 对比 例子
我需要一个脚本来复制当开关按钮打开时标记,当开关按钮关闭时删除标记。我需要一个简单的方法。这是开关按钮: 我试过这个: var change
JSF 是一个 MVC 框架,但我很困惑为什么我们已经有了这么多 HTML 标签还需要 JSF 标签。毫无疑问,JSF 简化了很多事情。我想进一步了解 JSF 中的模型 View 和 Controll
我在这个 website 上看到了那些 html 代码: Homepa
我添加了 photoswipe 插件,可以使用 搜索我的所有照片。标签,如果点击,照片就会变成全屏。我让它工作了,但现在我的导航栏(有 标签)在点击时会触发 photoswipe 插件。 在 ph
标签
我正在尝试截断显示自 的文本标签,但它不工作。我将样式应用于其他标签样式并且它确实有效(我看到的示例中没有一个使用 标签)。我想知道是否有人可以向我解释为什么会这样(我不是最擅长 HTML/CSS
HTML 是这样的: Menu 1 Menu 2 Sub menu 2
我可以更改 TextInputLayout 的位置 float 标签(底部 float 标签)吗?我需要为波纹管 float 标签设置正确的位置。 最佳答案 我解决了我的问题,这是我的 xml:
我的代码是 printMsg : function(data) { $("#message").html(data.bodyText); ... } 这里 data.body
我是 Scrapy 和 Xpath 的初学者,我正在寻找解析具有以下结构的网站 cat1 value1 value2
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及
我必须从 xml 中解析数据。这是我的 xml- 或者它的 url 是:http://mobileecommerce.site247365.com/admin/catdata.xml News f
如何创建应该允许多行数据的标记。不要说使用textarea标签。我知道,但我只想 标记因为标签具有 value 属性。所以当我从 xml 文件获取值时,我应该使用 jquery 语法动态获取.. 最佳
我有一个页面使用我定义的某些样式。 在同一页面上,我刚刚导入了一个使用自己样式的外部 jQuery 插件,例如,包括 。被我自己覆盖的标签样式。 如何确保我的样式表中的样式不会覆盖 jQuery 插件
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 8 年前。 Improve
我是一名优秀的程序员,十分优秀!