Git: Переименование Файла


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

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

3   51   2010-10-13 10:02:36

3 ответа:

можно попробовать:


но проблема case (например, в Windows) описана в msysgit выпуск 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 во время перебазирования:

по умолчанию в файловых системах 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 файлов и обнаружил, что он работал очень хорошо.

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