Я меняю капитализацию каталога и Git, похоже, не набирает его

Я разрабатываю проект по OS X Lion, который находится под управлением Git. У меня были эти строчные каталоги, а затем их заглавные буквы (например, emailaddresses = > EmailAddresses), но Git, похоже, не распознает изменения. Он по-прежнему считает, что каталоги имеют нижний регистр, когда я запускаю git ls-files и другие команды.

Является ли это безобидным, или мне нужно сделать что-то еще, чтобы получить Git, чтобы забрать это изменение?

Ответ 1

Вероятно, вы используете нечувствительный регистр (но сохраняющий регистр) HFS+. Обычно я работаю над этим так:

$ git mv somename tmpname
$ git mv tmpname SomeName

Ответ 2

Вы можете сказать git учесть случай, запустив

git config core.ignorecase false

Ответ 3

Как git mv на Mac с чувством чувствительности

Это происходит из-за того, что Mac OS X реализует функции сохранения случаев и нечувствительности к регистру, которые помогут вам.

Хотя предложения двойного переименования в другом ответе будут работать, я рекомендую использовать "-force" для получения наилучшего результата:

$ git mv --force somename SomeName


Примечание: если вы попробуете без параметра force, git будет выглядеть так:

$ git mv somename SomeName
$ fatal: destination exists, source=somename, destination=SomeName

В приведенном выше примере команда git завершается с ошибкой и файлы не изменяются в файловой системе или в индексе git.

Ответ 4

Попробуйте изменить параметр конфигурации git core.ignorecase на false в файле .gitconfig.

Ответ 5

Следующие шаги помогли мне решить проблему:

  1. Переименуйте папку в temp:

    mv Folder temp                  // It will rename your Folder to temp
    
  2. Сцена и коммит:

    git add .
    git commit -m "Temp"
    
  3. Переименуйте папку temp на ваш выбор:

    mv temp folder        // It will rename temp folder to the name of your choice(folder)
    git add .
    git commit -m "Folder Fixed"
    

Готово - теперь вы можете нажать.

Ответ 6

Ни один из этих решений не работал у меня. SourceTree всегда создавал мою ветку с другим случаем из того, что я хотел. Итак, как я решил это:

1 - Посмотрите на свои файлы git на поисковом устройстве. Вы можете сделать это, набрав это на терминале:

- `defaults write com.apple.finder AppleShowAllFiles TRUE`
- `killall Finder`

2 - Перезапустите поисковик и перейдите в каталог проекта

3 - Теперь просто измените имя своей папки, скажем, от функции к функции. И там вы идете.

Ответ 7

Если вы выполните git mv AAA aaa или git mv -f AAA aaa, это не сработает, и у вас будет ошибка fatal: renaming 'AAA' failed: Invalid argument.

Поскольку AAA и aaa являются ОДНОЙ ЖЕ папкой/файлом в файловых системах без учета регистра, перемещение AAA в aaa означает перемещение AAA как aaa/AAA.

Так что вы должны сделать

git mv AAA aaa.1
git mv aaa.1 aaa

Я надеюсь, что это будет полезно для вас.

Ответ 8

Вы также можете сделать это вручную без использования команд GIT. Внутри папки .git просто удалите папку с нужным именем, т.е. SomeName. Затем переименуйте папку somename в SomeName. Подробнее: Как исправить имя папки, установленное в верхний регистр, и git, конвертировать в нижний регистр