Ошибка чувствительности к регистру Git-переименование и фиксация из Android Studio
Например, у меня есть файл с именем FOOBar.java
что я хочу переименовать в FooBar.java
. После попытки много вещей, я получаю ошибку:
Error:error: pathspec 'app/src/main/java/blahblah/FooBar.java' did not match any file(s) known to git.
Вещи, которые я пробовал (не работает, все производят ту же ошибку):
из Android Studio:
- удаление
FOOBar.java
, воссоздаваяFooBar.java
, добавление / фиксация с помощью Git - рефакторинг / переименование файла, добавление / фиксация с помощью Git
- -->Недействительной Кэш / Перезагрузить..., затем попробуйте один из вышеперечисленных
- Перестроить Проект до / после любого из вышеперечисленного
в файловой системе:
- удалить
.gradle
папка в папке проекта, затем попробуйте один из вышеперечисленных в Android Студия
из командной строки Git:
-
git mv FOOBar.java FooBar.java --force
затемgit commit FooBar.java -m 'renamed from FOOBar.java to FooBar.java'
8 ответов
файловая система Windows в основном не учитывает регистр, поэтому вы не можете переименовать файл, просто изменив его капитализацию. Вместо этого вам придется использовать временное имя между ними.
попробуйте следующее из командной строки:
git mv FOOBar.java FooBar.java.new
git mv FooBar.java.new FooBar.java
git commit -m 'Rename file'
Я нашел очень простое решение этой. Скажем, вам нужно переименовать пакет Java "деятельность "to"деятельность". Этот пакет содержит несколько файлов и вложенных пакетов
следуйте последовательности шагов
- рефакторинг "деятельность "to"ActivitiesTemp " (Shift + F6)
- зафиксируйте и нажмите эти изменения
- рефакторинг снова с "ActivitiesTemp " to "деятельность"
- зафиксируйте и нажмите эти изменения
Это Все Люди !
У меня была аналогичная проблема, и я исправил ее, изменив конфигурацию git:
git config core.ignorecase false
переименуйте файл обратно в исходный, затем переименуйте его в другое имя, а затем обратно в тот, с правильной капитализацией. Git больше не будет бросать ошибку, это то же самое решение, что указал Poke, но с помощью Android studio.
пример:
Created FOOBar class.
Renamed it to FooBar and then got the error.
Rename it back to FOOBar.
Rename to FooBarTest.
Rename to FooBar.
Git works now.
Я также столкнулся с почти такой же ситуацией, в моем случае я создал файл и добавил в git (используя git add), после добавления в git я переименовал файл. При совершении я получил ошибку того же типа. Я решил со следующим шагом
использовать git статус для просмотра сохраненных файлов, вы можете увидеть свой старый файл в списке
-
-
app/src/main/java/blahblah/FOOBar.java
-
-
использовать сброс git чтобы удалить файл из staging
git reset app/src/main/java/blahblah/FOOBar.java
после удаления из постановки вы можно добавить новый файл
git add app/src/main/java/blahblah/FooBar.java
после этого вы можете совершить
http://binaryjeremys.blogspot.com/2015/03/android-studio-doesnt-like-it-when-you.html
чтобы исправить эту проблему, мне пришлось сбросить голову с помощью следующих шагов:
резервное копирование файлов сначала: Щелкните правой кнопкой мыши один из файлов и выберите "Показать в Проводнике". Сделайте копии всех файлов, которые изменились или весь проект, чтобы быть в безопасности. В Android Studio Удалите все конфликтующие / ошибочные объекты. VCS - > Git - > головка сброса Предупреждение: это сбросит все на последний раз, когда ты давал обещание Хеду. Как только это будет завершено, просто чтобы быть уверенным: Закройте проект, закройте Android studio, затем снова откройте оба. Создайте новые классы, чтобы заменить удаленные конфликтующие объекты правильным именем. Замените содержимое этих файлов или скопируйте / вставьте файлы резервных копий в папку. Зафиксируйте и нажмите свои изменения сейчас, и это должно сработать.
перейдите по ссылке для основной причины проблемы.