在Git提交后,“重写...(90%)”的消息是什么意思?

时间:2009-06-25 21:07:49

标签: git

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

谢谢!

3 个答案:

答案 0 :(得分:55)

它是相似性指数的衡量标准。相似性指数是未改变线的百分比。 git认为你的文件是文本。

答案 1 :(得分:22)

我相信马丁是正确的,这个数字是相似指数。来自git-diff手册页:

  

相似性指数是百分比   不变的线条,和   相异指数是百分比   变化的线条。这是一个向下舍入   整数,后跟百分号。   相似性指数值为100%   因此保留两个相同的文件,   而100%相异意味着没有   从旧文件的行进入   新的。

我第一次看到我认为我的二进制文件发生了巨大变化的数字!

答案 2 :(得分:-4)

尝试将CR和LF重写为一致的格式。也就是说,它不会将您的二进制文件视为二进制文件。要强制git正确执行此操作,请在.gitattributes中添加以下行:

*.bin -crlf -diff -merge

来自this page,意思是:

  

所有带[.bin]扩展名的文件都会   没有回车/换行   完成翻译,不会分歧   合并将导致冲突   保持原始文件不受影响。