Почему git показывает, что файл изменен, когда в представлении различий нет изменений?

#windows #git #visual-studio-2019

#Windows #git #visual-studio-2019

Вопрос:

Я использую git с VS 2019, и я часто оказываюсь в ситуации, когда git показывает файл как измененный, но когда я сравниваю с предыдущим, представление различий не показывает изменений.

Когда я нажимаю «Отменить изменения», ничего не происходит, файл остается в измененном состоянии. Я подумал, что, возможно, файл редактируется автоматически, поэтому я попытался закрыть окно документа, прежде чем отменить изменение, но это тоже не сработало. Я также подозревал, что это может быть связано с изменениями eol, но я подтвердил в VS, что окончания строк являются CRLF и соответствуют моим атрибутам gitattributes.

введите описание изображения здесь

 *.csproj    text eol=crlf
*.sln       text eol=crlf
*.cs        text eol=crlf
*.json      text eol=crlf
*.config    text eol=crlf
*.xml       text eol=crlf

[core]
    autocrlf    true
 

Единственное, что я могу сделать в этих ситуациях, это в любом случае зафиксировать изменения, которые портят историю неизмененными файлами, или удалить репозиторий и повторно клонировать его. Полный сброс тоже ничего не делает.

Комментарии:

1. Если разрешение файла изменено, например, с 644 на 755 , оно также изменяется.

Ответ №1:

Возможно, ваши файлы уже подготовлены и готовы к фиксации.

В этом случае самый простой способ увидеть различия в этих файлах — использовать опцию ‘—cached’, например:

 git diff --cached
 

или

 git diff --cached <file_name>