Несмотря на то, что git mv
будет работать, требуется, чтобы вы предоставили отображение от fileName
до FileName
, что может быть утомительным - и большинство попыток автоматизировать это будет подвержено ошибкам.
С другой стороны, если у вас есть клон, рабочее дерево которого имеет желаемую капитализацию, вы можете перестроить индекс из этого рабочего дерева. (Может показаться рискованным стереть индекс таким образом; но даже если что-то пойдет не так, вы можете легко перестроить индекс с помощью reset
или, в самом худшем случае, восстановить из источника - это является частью точки распределенное управление исходным кодом.)
То есть, когда репо находится в чистом состоянии (нет неотслеживаемых файлов, которые не игнорируются, нет неустановленных изменений и, предпочтительно, также нет поэтапных, но незафиксированных изменений):
git rm --cached -r -- :/:
git add -- :/:
Трюк здесь прост: в конфигурации без учета регистра git поймет, что файл рабочего дерева MyFile
совпадает с записью индекса myFile
- так что просто делает add не меняет имя в индексе. Но если в индексе нет соответствующей записи, регистр имени файла будет совпадать с тем, что в настоящее время находится в рабочем дереве.
(Похоже, вы говорите, что это не то поведение, которое вы ожидаете; я просто перепроверил, и по крайней мере, с 2.25.0. windows .1 такое поведение я вижу. Я не помню ни одной версии, которая вела себя по-другому.)