Вы можете попробовать:
Но проблема 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