信息是什么;重写。。。(90%)";在Git提交之后意味着什么?

信息是什么;重写。。。(90%)";在Git提交之后意味着什么?,git,Git,当git进行提交时,它会用类似于重写foobar.bin(76%)的东西重写二进制文件。那是什么%?它是从旧文件更改的百分比还是保留的百分比。我知道git对文件使用二进制增量,但我不知道%代表了多少重写,而且它似乎不在git help commit的帮助页面中 谢谢 它正试图将CRs和LFs重写为一致的格式。也就是说,它不会将二进制文件视为二进制文件。要强制git正确执行此操作,请插入以下行: 这意味着: 扩展名为[.bin]的所有文件都将 没有回车/换行 翻译完成后,不会有任何差异 合并将导致

当git进行提交时,它会用类似于重写foobar.bin(76%)的东西重写二进制文件。那是什么%?它是从旧文件更改的百分比还是保留的百分比。我知道git对文件使用二进制增量,但我不知道%代表了多少重写,而且它似乎不在git help commit的帮助页面中


谢谢

它正试图将CRs和LFs重写为一致的格式。也就是说,它不会将二进制文件视为二进制文件。要强制git正确执行此操作,请插入以下行:

这意味着:

扩展名为[.bin]的所有文件都将 没有回车/换行 翻译完成后,不会有任何差异 合并将导致冲突 保留原始文件不变


它是相似性指数的一种度量。相似性指数是不变行的百分比。git认为您的文件是文本。

我相信Martin是正确的,那个数字是相似性索引。从手册页:

相似性指数是百分比 未更改的行,以及 差异性指数是百分比 换了几行。这是一个四舍五入的数字 整数,后跟百分号。 100%的相似性指数值为 因此保留给两个相等的文件, 而100%的差异意味着没有 旧文件中的行使其成为 新的。


第一次看到这个数字时,我觉得我的二进制文件正在发生巨大的变化

也可能与Git有关,Git实际上为每个文件存储每个提交的完整副本(作为“blob”)。当您请求一个diff时,Git将检索相关文件的两个副本,并在此时运行diff。实际差异不会存储在任何位置。这并不能真正回答您的问题,但指出将Git视为存储“二进制增量”是不完全正确的,这不是问题上下文中“重写”的含义。Git说“嘿,看起来你重写了这个文件,但留下的76%与以前一样”。我相信相似性指数与Git是否认为该文件是文本无关。不确定,因为一些二进制文件看起来很像文本。因此,如果我看到重命名后有67%,那么我将解释为文件不仅已重命名,而且原始文件的67%仍然存在?当然,这可能意味着有人在重命名过程中编辑了原始文件的33%。如果重命名是一次提交,然后对文件进行编辑,会更有益吗?这会使重命名相似性指数的输出为100%吗?从理论上讲,这意味着重命名是成功的,没有数据丢失?我今天第一次看到这个,我想确保我理解它的预期用途。
*.bin -crlf -diff -merge