Подтвердить что ты не робот

Git: переименование файла

Я хотел переименовать папку с "Frameworks" в "Frameworks", но git не позволит мне добавить новое строчное имя. Я предполагаю, что он обрабатывает имена файлов без учета регистра, не так ли?

A git add frameworks/ -f не помог

4b9b3361

Ответ 1

Вы можете попробовать:


Но проблема case (например, для Windows) описана в msysgit issue 228 (опять же: это должно сейчас - июнь 2014 года - работайте с git 2.0.1)

всегда есть возможность установить ignorecase в false в файле конфигурации, который заставит использовать Unix как git семантику поверх NTFS.
git поддерживает это поведение, но не по умолчанию - с точки зрения NTFS a.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

Ответ 2

Если вы столкнулись с хостом в Github, вы можете использовать функцию переименования на своем веб-сайте. Пришлось изменить корпус на 5 файлов и нашел, что он работает очень хорошо.

Ответ 3

У меня была аналогичная проблема, и я не мог получить новое имя папки (другое дело) для изменения на удаленных репозиториях. Я обнаружил, что самым простым решением было просто переместить файл из репо и совершить. Запуск действия удаления. Затем повторно добавьте, и когда я добавлю, он пришел с надлежащим случаем.