Я хотел переименовать папку с «Frameworks
» на «frameworks
», но git не позволил мне добавить новое имя в нижнем регистре. Я предполагаю, что он обрабатывает имена файлов без учета регистра, не так ли?
git add frameworks/ -f
не помогло
Я хотел переименовать папку с «Frameworks
» на «frameworks
», но git не позволил мне добавить новое имя в нижнем регистре. Я предполагаю, что он обрабатывает имена файлов без учета регистра, не так ли?
git add frameworks/ -f
не помогло
Можешь попробовать:
"git mv -f foo.txt Foo.txt"
(примечание: это больше не нужно, начиная с git 2.0.1)ignorecase
в false в файле конфигурации.Но проблема case (например, в Windows) описана в проблеме msysgit. 228 (опять же: это должно теперь -- июнь 2014 года -- работать с git 2.0.1)
всегда есть возможность установить для
ignorecase
значение false в файле конфигурации, что заставит Unix использовать семантику Git поверх NTFS.
Git поддерживает такое поведение, но это не по умолчанию — с точки зрения NTFSa.txt
иA.txt
являются то же самое - поэтому Git пытается сохранить это, как и ожидало большинство пользователей
В качестве лучшего обходного пути вы можете
git mv foo.txt foo.txt.tmp && git mv foo.txt.tmp Foo.txt
, который также изменяет регистр файла, хранящегося на диске.
Этот пост в блоге иллюстрирует ту же проблему на MacOs во время перебазирования:
По умолчанию в файловых системах Mac OS X регистр не учитывается.
FFFFFF.gif
совпадает сffffff.gif
.Если вы удалите рассматриваемый файл только из файловой системы, а не из индекса Git, заметьте, вы можете объединить рассматриваемую ветку и восстановить файл, как будто ничего не произошло.
Шаги довольно просты:
$ rm file/in/question.gif $ git merge trunk
Во всяком случае, запомните, что означает git mv:
mv oldname newname
git add newname
git rm oldname
, поэтому, если newname
и oldname
конфликтуют, вам нужно сделать их разными (даже если это только на короткий период времени), поэтому git mv foo.txt foo.txt.tmp && git mv foo.txt.tmp Foo.txt
git mv
, но это дало мне fatal: renaming 'Frameworks' failed: Invalid argument
- person Erik Aigner; 13.10.2010
Если вам случится размещаться на Github, вы можете использовать функцию переименования на их веб-сайте. Пришлось изменить корпус для 5 файлов и обнаружил, что это работает очень хорошо.
У меня была аналогичная проблема, и я не мог изменить имя новой папки (другой регистр) в удаленных репозиториях. Я обнаружил, что самым простым решением было просто переместить файл из репо и зафиксировать. Запуск действия удаления. Затем снова добавьте, и когда я добавил, он появился с правильным регистром.