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

dud*_*ude 87 git

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

谢谢!

Mar*_*ond 57

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

  • 我相信相似性指数与Git是否认为该文件是文本无关.不确定,因为一些二进制文件看起来很像文本. (9认同)

Dan*_*ill 22

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

相似性指数是未更改行的百分比,相异性指数是更改行的百分比.它是一个向下舍入的整数,后跟一个百分号. 因此,100%的相似性索引值保留用于两个相等的文件,而100%的相异性意味着旧文件中的任何行都不会成为新文件.

我第一次看到这个号码,我以为我的二进制文件发生了巨大变化!

  • 因此,如果我看到重命名后跟 67%,那么我会将其解释为文件不仅已重命名,而且原始文件的 67% 仍然存在?当然,这可能意味着有人在重命名期间编辑了原始文件的 33%。如果重命名是一次提交然后编辑文件会更有益吗?这会使重命名相似性索引的输出为 100% 吗?这在理论上意味着重命名成功并且没有数据丢失?我今天第一次看到这个,我想确保我理解它的预期用途。 (2认同)