Я только что проверил наш репозиторий, и у нас есть 2 файла с очень похожими именами, хотя один не имеет всех заглавных букв. Может быть, git путают с каким?
Это не столько Git, сколько то, что в вашей комбинации ОС / файловой системы, вы буквально не можете хранить оба файла.
Если вы создаете файл с именем ReadMe.txt
, а затем просите свою ОС создать другой, другой файл с именем README.TXT
, ваша ОС отказывается делать который. Вместо этого он просто перезаписывает ReadMe.txt
новым содержимым.
Commits в Git не являются файлами. Хотя они содержат , содержащие файлы, они хранят их в специальном, только для чтения, Git только в замороженном формате, который ваша ОС не использует или не понимает. В этом формате могут храниться оба файла - тот, чье имя оканчивается заглавными буквами, и тот, чье имя оканчивается смешанным регистром.
Git извлекает оба файла, а ваша ОС сохраняет только один из них. Git понимает, что ваша ОС не может обойтись обоими одновременно, но Git ничего не может с этим поделать. (Он может предупредить вас об этом, по крайней мере, и совсем недавно Git научился это делать.)
Способ исправить это - сделать новый коммит в что файлы имеют явно разные имена (или в которых есть только один файл с двумя именами, которые ваша ОС считает одним именем). Самый простой способ сделать это - сделать это на компьютере или в файловой системе, в которой могут храниться оба имени. Например, если у вас есть под рукой машина Linux, клонируйте репозиторий там, перемешайте файлы, подтвердите и pu sh. Новый коммит сохраняет файлы под новыми улучшенными именами. Будьте осторожны, чтобы не проверить старый коммит с двумя файлами под именами, которые перекрываются на Windows.