git чувствительные к регистру проблемы

Я никогда раньше не использовал git в Windows и столкнулся с проблемой имени файла с учетом регистра.

Сценарий:

  1. git init в пустой папке
  2. проверьте, что .git\config содержит ignorecase = true строку
  3. создать файл dir\file
  4. добавьте его как git add Dir\file (обратите внимание, что файл будет добавлен с другим именем)
  5. сделать коммит: git commit –m “Test”
  6. now try to access log history of dir\file:
    • git log Dir\file show 1 record as expected.
    • git log dir\file ничего не показывают.

Кроме того, если вы пойдете к dir и спросите git log file, это ничего не покажет. Если вы измените файл и попросите показать git status

\# modified: ../Dir/file

Отказ от ответственности:

Я знаю, что есть много связанных материалов, таких как http://code.google.com/p/msysgit/issues/detail?id=286#c10 и обходные пути с переименованием файлов. У меня десятки таких случаев. Я ищу чистое решение git, не касаясь файлов физически. Причина: эти файлы находятся под другой системой контроля версий (я создал зеркало git)


person xvorsx    schedule 08.02.2013    source источник
comment
Прошу прощения за мой английский. Вы можете помочь мне улучшить его и исправить этот текст здесь: 8.com/472424/журналы/   -  person xvorsx    schedule 08.02.2013
comment
Использование сторонней службы для исправлений в SO не требуется, поскольку пользователи могут редактировать вопросы. Когда вы нажмете edited x hours ago, вы увидите историю изменений и сможете извлечь из нее уроки.   -  person harpun    schedule 09.02.2013
comment
Спасибо, это работает отлично (я имею в виду инструмент коррекции SO).   -  person xvorsx    schedule 09.02.2013


Ответы (1)


Я не пробовал это, но я предлагаю:

git mv Dir\file Dir\x-file
git mv Dir\x-file dir\file

Теоретически вы получите dir\file как в вашем репозитории, так и в вашем рабочем дереве.

person Mark Leighton Fisher    schedule 08.02.2013
comment
'git mv' перемещает реальные файлы, а не только ссылки на рабочие деревья. И нет версии чего-то вроде «--cached» для «git rm». Так что это то же самое, что просто «мв» - person xvorsx; 09.02.2013