GIT: как git узнает об изменениях текстового файла? - PullRequest
0 голосов
/ 25 июня 2018
Например,

, по git diff file мы можем знать, что мы удалили 3 строки, вставили 1 строку и изменили 3 строки. но как Git может достичь этого? Отслеживает ли это процесс моего редактирования? Оставляет ли vim какие-то специальные файлы для git, чтобы его достичь?

Я имею в виду, если я изменил одну строку, я также могу сказать, что я удаляю одну строку и вставляю одну строку. Как git узнает, что я изменил эту строку, а не делал удаление и вставку?

1 Ответ

0 голосов
/ 25 июня 2018

Отслеживает ли процесс моего редактирования?

Нет.

Проверяется наличие изменений путем сравнения кэшированной версии (хранится в папке .git).и текущая версия.

Оставляет ли vim какие-то специальные файлы для git для его достижения?

Нет

... Откуда git узнал, что я изменил эту строку, а не делал удаление и вставку?

Короче говоря, он проверяет сходство, а также различия в двух файлах, используя алгоритм, которыйотвечает на самую длинную общую последовательность подпоследовательностей .Важно знать, что diff - это не только команда, представленная в git - это также команда Linux / Unix .

Существует множество алгоритмов, которые можно использовать для поиска различий между двумя файлами, таких как Алгоритм Ханта-Макилроя и алгоритм сравнения Майера.

Вместо того, чтобы искатьконкретный ответ для git diff, я предлагаю вам вместо этого взглянуть на два вышеупомянутых алгоритма.

См. этот вопрос для получения более подробной информации: Алгоритм сравнения Майерса против алгоритма Ханта-Макилроя

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...