git commit后的意思是“重写…(90%)”是什么意思?

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

谢谢!

它是相似指数的一个度量。 相似度指数是未更改行数的百分比。 git认为你的文件是文本。

我相信马丁是正确的,那个数字就是相似指数。 从git-diff手册页:

相似度指数是不变的行数的百分比,不相似度的指数是变化的行数的百分比。 这是一个向下舍入的整数,后面跟着一个百分号。 因此,100%的相似性指标值被保留给两个相同的文件,而100%相异性意味着来自旧文件的行不会变成新的文件。

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

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

 *.bin -crlf -diff -merge 

从这个页面意味着:

所有扩展名为[.bin]的文件都不会有回车/换行符的转换,不会有差异,合并会导致冲突而不改变原始文件。