Ошибка чувствительности к регистру Git-переименование и фиксация из Android Studio


Например, у меня есть файл с именем FOOBar.java что я хочу переименовать в FooBar.java. После попытки много вещей, я получаю ошибку:

enter image description here

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"деятельность". Этот пакет содержит несколько файлов и вложенных пакетов

следуйте последовательности шагов

  1. рефакторинг "деятельность "to"ActivitiesTemp " (Shift + F6)
  2. зафиксируйте и нажмите эти изменения
  3. рефакторинг снова с "ActivitiesTemp " to "деятельность"
  4. зафиксируйте и нажмите эти изменения

Это Все Люди !


У меня была аналогичная проблема, и я исправил ее, изменив конфигурацию 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

после этого вы можете совершить


очень простое исправление, которое я нашел, было сделать эту команду в терминале

сброс git


попытаться перезагрузка Android Studio!

У меня была эта проблема в репозитории без коммитов.


http://binaryjeremys.blogspot.com/2015/03/android-studio-doesnt-like-it-when-you.html

чтобы исправить эту проблему, мне пришлось сбросить голову с помощью следующих шагов:

резервное копирование файлов сначала: Щелкните правой кнопкой мыши один из файлов и выберите "Показать в Проводнике". Сделайте копии всех файлов, которые изменились или весь проект, чтобы быть в безопасности. В Android Studio Удалите все конфликтующие / ошибочные объекты. VCS - > Git - > головка сброса Предупреждение: это сбросит все на последний раз, когда ты давал обещание Хеду. Как только это будет завершено, просто чтобы быть уверенным: Закройте проект, закройте Android studio, затем снова откройте оба. Создайте новые классы, чтобы заменить удаленные конфликтующие объекты правильным именем. Замените содержимое этих файлов или скопируйте / вставьте файлы резервных копий в папку. Зафиксируйте и нажмите свои изменения сейчас, и это должно сработать.

перейдите по ссылке для основной причины проблемы.