Подтвердить что ты не робот

Что означает сообщение "переписать... (90%)" после коммита Git?

Когда git выполняет фиксацию, он перезаписывает двоичные файлы с чем-то похожим на rewrite foobar.bin (76%). Что это %? Процент изменен или процент сохранен из старого файла. Я знаю, что git использует двоичную дельта для файлов, но я просто не знаю, сколько переписывает%%, и она, кажется, не находится на странице справки для git help commit.

Спасибо!

4b9b3361

Ответ 1

Его мера индекса подобия. Индекс подобия представляет собой процент неизмененных строк. git считает ваш файл текстовым.

Ответ 2

Я считаю, что Мартин прав, это число - индекс подобия. Из git-diff man-страниц:

Показатель подобия - это процент неизмененных линий, а Показатель различий - это процент измененных строк. Это округленное целое число, за которым следует знак процента. Значение индекса подобия 100% таким образом, зарезервировано для двух равных файлов, в то время как 100% несходство означает, что нет строка из старого файла превратилась в новый.

В первый раз я увидел номер, который, как я думал, мои двоичные файлы сильно меняются!

Ответ 3

Он пытается переписать CR и LF в согласованный формат. То есть он не видит ваш двоичный файл двоичным. Чтобы заставить git сделать это правильно, поместите следующую строку в . Gitattributes:

*.bin -crlf -diff -merge

Из эта страница, что означает:

все файлы с расширением [.bin] будут нет возврата каретки/линии переводы не будут отличаться и слияния приведут к конфликтам оставляя исходный файл нетронутым.