das*_*s_j 4 git binaryfiles git-index
我的Git目录中的大多数文件都是纯文本文件(压缩的松散对象和packfiles除外).这样我就可以猫和编辑文件,如.git/HEAD或.git/refs/heads/master与检查库,如果它被破坏.
但这.git/index是一个二进制文件.纯文本文件不是更有用,因为它可以很容易地手工修改吗?
Scott Chacon在他的演讲中展示了以下图片(幻灯片278):

在我看来,这很容易被放到一个纯文本文件中.
那么为什么它是二进制文件而不是纯文本文件?
答案给出的理由都没有充分解决提出的问题,即"为什么Git索引文件是二进制文件?".接受的答案是不正确的.索引不"包含"任何纯文本文件 - 它包含对纯文本文件的引用.此外,要说Git索引包含"索引条目",实际上根本没什么用处,特别是对于寻求真理的开发人员...最后,索引不会缓存树 - 缓存对树的引用.
该索引不是二进制的,因为它是"索引"的(如上面评论中的海报所述) - 并且它本身并不是"性能原因"的二进制.索引中的所有内容都可以使用纯文本文件表示 - 即使二进制索引文件中表示的标志和位也可以表示为ASCII.它是二进制文件,因为包含按位标志的二进制文件格式能够更有效地使用磁盘空间.而且,了解Linus,它可能是二进制的,以便通过易于访问的文本编辑器来阻止新手的篡改.
*新信息* 索引的第4版实现了路径压缩,大型回购的索引大小可节省大约50%.(来源:https://git-scm.com/docs/git-update-index)这种压缩适用于二进制格式的索引文件.
| 归档时间: |
|
| 查看次数: |
1109 次 |
| 最近记录: |