为什么git在目标文件中添加一个“ TYPE LENGTH \ 0”标头?

abcdabcd987

我阅读了Git Pro,并知道git将标头添加到目标文件中,TYPE LENGTH\0例如:

header = "blob #{content.length}\0"

但我想知道git保留此标头的目的是什么?

周二

的确,在几乎所有情况下,当您拥有SHA-1时,您都知道应该获得哪种对象:如果从分支引用开始,则应该提交;如果你开始一个提交与其tree必须得到一棵树; 如果您有一个树ID并读取了它的对象,则每个条目都有一个mode,告诉您对象的类型。

但是,如果您有标签参考呢?如果阅读.git/refs/tags/v2.2.2并得到da5eda36576c1d45a52f7f60a9e5372aa4e2bb58,您希望为对象找到哪种类型da5eda36576c1d45a52f7f60a9e5372aa4e2bb58

如果v2.2.2是轻量级标记,da5eda36576c1d45a52f7f60a9e5372aa4e2bb58则可能是一个提交,但它可能是一棵树,甚至是一个blob。如果是带注释的标签,da5eda36576c1d45a52f7f60a9e5372aa4e2bb58将是标签对象。

您可以读取目标对象并进行猜测,但是如果它是blob对象,则它看起来可能像是有效的带注释的标记,提交或树。唯一确定的方法是读取对象类型。


除了上述内容,还git cat-file -t告诉您类型,它只能从基础对象中找到。当然,如果git的设计不同有可能不会一个git cat-file -t但是标签尤其需要这种类型,并且一旦存在,通过git cat-file -t合理的方式公开它也是可行的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用okhttp添加适当的content-length标头?

来自分类Dev

为什么Java不读取Content-length响应标头?

来自分类Dev

在Rails / Rack中禁用Content-Type标头

来自分类Dev

在PHP中获取当前的Content-Type标头

来自分类Dev

Content-Type标头未在Tornado中设置

来自分类Dev

删除ngResource angular中的“ Content-Type”标头

来自分类Dev

删除Apache中的Content-Type标头

来自分类Dev

在 HttpWebRequest 中设置“Content-Type”标头的最佳方法?

来自分类Dev

在通过毕加索下载图像之前,如何通过Content-Length和Content-Type验证响应标头?

来自分类Dev

在HTTP / 1.0响应中指定Content-Length标头有什么好处?

来自分类Dev

在node.js中计算Content-length标头的正确方法是什么

来自分类Dev

下载前获取文件大小,而不使用Content-Length标头

来自分类Dev

为什么在MultiPart主体零件中不允许Content-Type标头?

来自分类Dev

为什么在MultiPart主体零件中不允许Content-Type标头?

来自分类Dev

从spring servlet HTTP响应中删除Content-Length和Transfer-Encoding标头

来自分类Dev

使Nginx忽略PHP-FPM中的content-length标头

来自分类Dev

从Tornado中的服务器将Content-Length标头写入客户端

来自分类Dev

Request的content-type标头包含的内容超过了MIME类型,为什么?

来自分类Dev

为什么这个支持 BODY 的 OkHttp POST 缺少其 Content-Type 标头?

来自分类Dev

为什么不能将第一个标头添加到getPreferenceScreen?

来自分类Dev

Ui-Grid标头-在最后一个标头列中添加图标

来自分类Dev

Ui-Grid标头-在最后一个标头列中添加图标

来自分类Dev

talend tRESTClient怀疑问题,如果没有“ content-length:0”标头,则没有内容响应204

来自分类Dev

使用PUT方法未在Golang http客户端请求中设置Content-Length标头

来自分类Dev

无法将 Content-Type 标头添加到 SSE 端点

来自分类Dev

节点js:如何获取文件签名标头而不是mime-type?

来自分类Dev

我可以在Guzzle的routes文件中指定Accept和Content-Type标头吗?

来自分类Dev

NSIS inetc :: put,无法上传文件:“尝试设置Content-type标头。”

来自分类Dev

将Content-Type标头转换为文件扩展名

Related 相关文章

  1. 1

    如何使用okhttp添加适当的content-length标头?

  2. 2

    为什么Java不读取Content-length响应标头?

  3. 3

    在Rails / Rack中禁用Content-Type标头

  4. 4

    在PHP中获取当前的Content-Type标头

  5. 5

    Content-Type标头未在Tornado中设置

  6. 6

    删除ngResource angular中的“ Content-Type”标头

  7. 7

    删除Apache中的Content-Type标头

  8. 8

    在 HttpWebRequest 中设置“Content-Type”标头的最佳方法?

  9. 9

    在通过毕加索下载图像之前,如何通过Content-Length和Content-Type验证响应标头?

  10. 10

    在HTTP / 1.0响应中指定Content-Length标头有什么好处?

  11. 11

    在node.js中计算Content-length标头的正确方法是什么

  12. 12

    下载前获取文件大小,而不使用Content-Length标头

  13. 13

    为什么在MultiPart主体零件中不允许Content-Type标头?

  14. 14

    为什么在MultiPart主体零件中不允许Content-Type标头?

  15. 15

    从spring servlet HTTP响应中删除Content-Length和Transfer-Encoding标头

  16. 16

    使Nginx忽略PHP-FPM中的content-length标头

  17. 17

    从Tornado中的服务器将Content-Length标头写入客户端

  18. 18

    Request的content-type标头包含的内容超过了MIME类型,为什么?

  19. 19

    为什么这个支持 BODY 的 OkHttp POST 缺少其 Content-Type 标头?

  20. 20

    为什么不能将第一个标头添加到getPreferenceScreen?

  21. 21

    Ui-Grid标头-在最后一个标头列中添加图标

  22. 22

    Ui-Grid标头-在最后一个标头列中添加图标

  23. 23

    talend tRESTClient怀疑问题,如果没有“ content-length:0”标头,则没有内容响应204

  24. 24

    使用PUT方法未在Golang http客户端请求中设置Content-Length标头

  25. 25

    无法将 Content-Type 标头添加到 SSE 端点

  26. 26

    节点js:如何获取文件签名标头而不是mime-type?

  27. 27

    我可以在Guzzle的routes文件中指定Accept和Content-Type标头吗?

  28. 28

    NSIS inetc :: put,无法上传文件:“尝试设置Content-type标头。”

  29. 29

    将Content-Type标头转换为文件扩展名

热门标签

归档