Я управлял контролем версий через командную строку в своем проекте, но включил интеграцию git в Matlab, чтобы было удобно и легко видеть, какие файлы были изменены.
Вчера я изменил свое мнение по поводу своих соглашений об именах и использовал заглавные имена некоторых файлов, которые затем были успешно добавлены и зафиксированы с помощью git через командную строку.
Теперь у меня есть маленький красный значок рядом с моими измененными файлами (только эти), который при наведении курсора говорит об отсутствии. Я по-прежнему могу получать доступ к файлам и изменять их, а также делать все, что обычно можно делать, но я не могу избавиться от красных значков.
Я попытался отключить и снова включить интеграцию git в git, переместив папку .git и вернув ее в папку, а также открыв Matlab между ними.
Кажется, я не могу найти способ удалить настройки системы управления версиями для проекта и повторно инициировать систему управления версиями в ее текущем состоянии, поскольку я ожидаю, что это поможет.
редактировать - это в Windows 10 с использованием Matlab 2021b
@КрисЛуенго Windows 10
Коммит, который «добавил» переименованные файлы, показывает только добавление или добавление и удаление старых имен или, возможно, отображение как переименование?
@CrisLuengo Кажется, они отображаются как добавления (символы + рядом с каждым из файлов) без удалений или файлов с символами -. Запуск git ls-tree -r main --name-only подтверждает, что в настоящее время отслеживаются версии с заглавными и не с заглавными буквами.
Так что это проблема файловой системы, нечувствительной к регистру. Я бы переместил переименованные файлы во временный каталог, удалил обе версии файлов из git за одну фиксацию, затем переместил файлы обратно и заново добавил их в git. Вы теряете возможность отслеживать изменения для этих файлов, но я не вижу способа избежать этого в Windows.
Да, вот куда я тоже попал, увидев и то, и другое. Я надеялся, что смогу переместить старые версии во временный каталог, а затем переименовать их как новые, не теряя истории, однако она исчезла. Но больше никаких надоедливых красных значков!





Ошибка возникла из-за конфликта между файлами нижнего и верхнего регистра, которые распознавались как два разных файла. Это можно проверить, запустив git ls-tree -r HEAD --name-only.
Поскольку моя последняя фиксация была только изменением имени, я проверил предыдущую фиксацию и использовал git mv <old name> <new name>, чтобы убедиться, что git знает, что старый файл переименовывается, а не новый файл.
-- Редактировать --
История изменений теперь не отображается при использовании только git log <file>, однако при добавлении тега --follow, например. git log --follow <file name> по предложению ТТТ показывает всю историю, как и ожидалось.
Хотите верьте, хотите нет, но Git на самом деле не отслеживает переименования и, более того, git mv на самом деле не делает ничего отличного от того, что вы делали в первый раз, за исключением, может быть, первого раза, когда вы только инсценировали добавление и забыли инсценировать удаление? git mv одновременно выполняет добавление и удаление. Кроме того, если вы сделали то, что сказали здесь, история изменений должна пройти через переименование без каких-либо проблем (в большинстве типичных представлений истории).
Когда я внес изменения, я помню, что в первый раз было какое-то странное дело, файлы даже не помечались как разные. Увы, когда я внес изменения с помощью mv, просмотр журнала git для файлов не показал истории коммитов по сравнению с тем, что было до изменения, когда они отображали полную историю.
Попробуйте git log --follow. Я думаю, что некоторые графические интерфейсы используют это по умолчанию при просмотре истории файла.
Какую ОС вы используете? Окна?