TL; DR Внесение изменений в .gitattributes изменяет индекс сразу после просмотра хранилища (команды git не запускаются). Зачем? Что происходит под капотом?
У меня были проблемы с окончаниями строки git, когда git diff
отображал измененные окончания строк в файлах с произвольным кодом. Наконец я смог отследить его до строки gitattributes:
*.cs text diff=csharp
Извлечение детали text
решило проблему:
*.cs diff=csharp
Любопытно, что изменения произошли сразу при переходе к корню хранилища с помощью git bash. Также файлы кода больше не отображаются как измененные, даже если я добавлю *.cs text
обратно в файл .gitattributes.
Шаги приняты
Пробег git status
$ git status
On branch master
Your branch is up to date with 'origin/master'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: File1.cs
modified: File2.cs
no changes added to commit (use "git add" and/or "git commit -a")
Измените файл атрибутов .git на этом этапе (см. Выше)
Повторный запуск git status
$ git status
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
Обновление: сравнение индексов с git ls-files --debug
Большинство файлов имеют следующие изменения в индексе сразу при просмотре хранилища (старый размер равен 0, а новый размер варьируется от файла к файлу):
До
Form1.cs
ctime: 1524665651:594691900
mtime: 1524665651:596697700
dev: 0 ino: 0
uid: 0 gid: 0
size: 0 flags: 0
После
Form1.cs
ctime: 1524665651:594691900
mtime: 1524665651:596697700
dev: 0 ino: 0
uid: 0 gid: 0
size: 5817 flags: 0