Я хотел переименовать папку с "Frameworks
" в "Frameworks
", но git не позволит мне добавить новое строчное имя. Я предполагаю, что он обрабатывает имена файлов без учета регистра, не так ли?
A git add frameworks/ -f
не помог
Я хотел переименовать папку с "Frameworks
" в "Frameworks
", но git не позволит мне добавить новое строчное имя. Я предполагаю, что он обрабатывает имена файлов без учета регистра, не так ли?
A git add frameworks/ -f
не помог
Вы можете попробовать:
"git mv -f foo.txt Foo.txt"
(обратите внимание: это больше не требуется с git 2.0.1)ignorecase
в false в файле конфигурации.Но проблема case (например, для Windows) описана в msysgit issue 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 во время rebase:
По умолчанию в файловых системах 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
Если вы столкнулись с хостом в Github, вы можете использовать функцию переименования на своем веб-сайте. Пришлось изменить корпус на 5 файлов и нашел, что он работает очень хорошо.
У меня была аналогичная проблема, и я не мог получить новое имя папки (другое дело) для изменения на удаленных репозиториях. Я обнаружил, что самым простым решением было просто переместить файл из репо и совершить. Запуск действия удаления. Затем повторно добавьте, и когда я добавлю, он пришел с надлежащим случаем.