Я пытаюсь переименовать файл, чтобы он стал заглавным:
git mv src/collision/b2AABB.js src/collision/B2AABB.js
fatal: destination exists, source=src/collision/b2AABB.js, destination=src/collision/B2AABB.js
Как вы можете видеть, Git приподнимается над этим. Я также попытался переименовать, используя просто старую mv
команду, но Git не принимает переименование (как переименование или как новый неотслеживаемый файл).
Как я могу изменить файл, чтобы иметь другую заглавную букву с тем же именем? Я на Mac OS X v10.7.3 (Lion) с Git 1.7.9.1 с использованием оболочки Z (zsh) 4.3.15.
git
rename
case-sensitive
file-rename
knpwrs
источник
источник
git mv myfile foo; git mv foo MyFile
git mv hello.txt Hello.txt
будет работать с регистронезависимой ОС. Смотрите мой ответ нижеОтветы:
Начиная с Git 2.0.1 (25 июня 2014 г.), программа
git mv
будет работать только с нечувствительной к регистру ОС .См совершить baa37bf по Дэвид Тернер (
dturner-tw
) .mv
: разрешить переименование для исправления регистра в нечувствительных к регистру файловых системах«
git mv hello.txt Hello.txt
» в файловой системе, нечувствительной к регистру, всегда вызывает «destination already exists
» ошибку, поскольку эти два имени относятся к одному и тому же пути с точки зрения файловой системы и требуют от пользователя указания «--force
» при исправлении регистра пути, записанного в индексе и в следующий коммитgit mv hello.txt Hello.txt
просто работает (больше не--force
требуется).Другая альтернатива:
И переименуйте файл напрямую; Git добавить и зафиксировать.
источник
git config core.ignorecase false
Принимая во внимание ответ жаворонка , вы можете заставить его работать с одной командой с --force:
источник
Error: Will not add file alias 'MyFile' ('myfile' already exists in index)
Иногда вы хотите изменить заглавные буквы многих имен файлов в нечувствительной к регистру файловой системе (например, в OS X или Windows). Выполнение
git mv
команд быстро устает. Чтобы сделать вещи немного проще, это то, что я делаю:git add . -A
чтобы удалить все файлы.git add .
. Git должен видеть, что файлы переименованы.Теперь вы можете сделать коммит, сказав, что вы изменили заглавные буквы имени файла.
источник
Имена файлов в OS X не чувствительны к регистру (по умолчанию). Это скорее проблема ОС, чем проблема Git. Если вы удалите и прочитаете файл, вы должны получить то, что хотите, или переименовать его в другое, а затем переименовать обратно.
источник
git clone
репозиторий в системе Linux, переименовать файлы и зафиксировать их только для этой ситуации (если у вас есть система Linux под рукой).git rm --cached fileorfolder
для удаления файла или папки из git, не удаляя файл или папку из файловой системы. Затем вы можете просто добавить файл или папку с помощьюgit add fileorfolder
.Набор
ignorecase
дляfalse
в мерзавца конфигурацииКак и в оригинальном посте, «Изменение заглавных букв в Git»:
Если вы пытаетесь изменить прописное имя файла в своем проекте, вам не нужно принудительно переименовывать его из Git. IMO, я бы предпочел изменить заглавную букву с моего IDE / редактора и убедиться, что я правильно настроил Git для получения переименования.
По умолчанию шаблон Git настроен на игнорирование регистра (Git без учета регистра). Чтобы убедиться, что у вас есть шаблон по умолчанию, используйте
--get
для получения значения для указанного ключа. Используйте--local
и,--global
чтобы указать Git, выбрать ли значение ключа конфигурации из локальной конфигурации Git-репозитория или глобальной. Например, если вы хотите найти свой глобальный ключcore.ignorecase
:Если это возвращается
true
, убедитесь, что установили его как:(Убедитесь, что у вас есть соответствующие разрешения для изменения глобальных настроек.) И вот, у вас есть это; теперь ваша установка Git не будет игнорировать заглавные буквы и рассматривать их как изменения.
В качестве предложения, если вы работаете над многоязычными проектами и считаете, что не все проекты должны обрабатываться Git с учетом регистра, просто обновите локальный
core.ignorecase
файл.источник
git config --global --get core.ignorecase
ничего не вернет. Этоtrue
?? потому что после того, как я установил его,false
он возвращает false (Windows 10)git mv
). Я также предполагаю, что по умолчанию он считается истинным (то есть он игнорирует регистр). Либо так, либо он соответствует политике ОС для имени файла.Вы можете открыть каталог «.git», а затем отредактировать файл «config». Под набором «[core]» установите «ignorecase = true», и все готово;)
источник
Чтобы
git mv
выполнить массовую загрузку файлов в нижнем регистре на macOS:Он будет в нижнем регистре все файлы в папке.
источник
Этот фрагмент кода Python переведет
git mv --force
все файлы в каталог в нижний регистр. Например, foo / Bar.js станет foo / bar.js черезgit mv foo/Bar.js foo/bar.js --force
.Измените его по своему вкусу. Я просто решил, что поделюсь :)
источник
Рабочий пример:
источник