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
- File → Invalidate 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, затем снова запустите.
Создайте новые классы, чтобы заменить удаленные конфликтующие объекты на правильное имя.
Замените содержимое этих файлов или скопируйте/вставьте файлы резервных копий в папку.
Зафиксируйте и нажмите свои изменения сейчас, и он должен работать.
Следуйте ссылке на главную причину проблемы.