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
  • FileInvalidate Caches / Restart..., затем попробуйте один из указанных выше
  • Rebuild Project до/после любого из вышеперечисленных

в файловой системе:

  • удаление папки .gradle в папке проекта, а затем попытку одного из указанных выше в Android Studio

из командной строки Git:

  • git mv FOOBar.java FooBar.java --force, затем git commit FooBar.java -m 'renamed from FOOBar.java to FooBar.java'

Ответ 1

Файловая система Windows в основном нечувствительна к регистру, поэтому вы не можете переименовать файл, просто изменив его капитализацию. Вместо этого вам придется использовать временное имя между ними.

Попробуйте следующее из командной строки:

git mv FOOBar.java FooBar.java.new
git mv FooBar.java.new FooBar.java
git commit -m 'Rename file'

Ответ 2

Я нашел очень простое решение. Скажем, вам нужно переименовать пакет java " Мероприятия" в " действия". Этот пакет содержит несколько файлов и подпакетов

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

  • Рефакторинг Мероприятия "до" ActivitiesTemp "(Shift + F6)
  • Зафиксируйте и нажмите эти изменения.
  • Рефакторинг снова из ActivitiesTemp действия"
  • Зафиксируйте и нажмите эти изменения.

Thats All People!

Ответ 3

У меня была аналогичная проблема, и я исправил ее изменение git config:

git config core.ignorecase false

Ответ 4

Переименуйте файл обратно в исходное, затем переименуйте его на другое имя, затем вернитесь к тому, у которого есть правильная заглавная. Git больше не будет бросать ошибку, это то же самое решение, что и Poke, но с помощью студии android.

Пример:

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.

Ответ 5

Я также столкнулся с почти такой же ситуацией, в моем случае я создал файл и добавил в git (используя git add), после добавления в git я переименовал файл. При совершении я получил ошибку того же типа. Я решил с помощью следующего шага

используйте git статус, чтобы просмотреть поэтапные файлы, которые вы можете увидеть в списке

- 
-
app/src/main/java/blahblah/FOOBar.java
-
-

используйте git reset, чтобы удалить файл из этапа

git reset app/src/main/java/blahblah/FOOBar.java

После удаления из этапа вы можете добавить свой новый файл

git add app/src/main/java/blahblah/FooBar.java

после этого вы можете зафиксировать

Ответ 6

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

git reset

Ответ 7

Попробуйте перезапустить Android Studio!

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

Ответ 8

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

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

Сначала резервное копирование файлов: Щелкните правой кнопкой мыши один из файлов и выберите "Показать в проводнике". Сделайте копии любых файлов, которые были изменены, или весь проект будет в безопасности. В Android Studio Удалите все конфликтующие/ошибочные объекты. VCS → Git → reset Голова ПРЕДУПРЕЖДЕНИЕ. Это будет reset все в последний раз, когда вы совершили фиксацию. Как только это будет завершено, просто убедитесь: Закройте проект, закройте студию Android, затем снова запустите. Создайте новые классы, чтобы заменить удаленные конфликтующие объекты на правильное имя. Замените содержимое этих файлов или скопируйте/вставьте файлы резервных копий в папку. Зафиксируйте и нажмите свои изменения сейчас, и он должен работать.

Следуйте ссылке на главную причину проблемы.