Я знаю, что ответ на этот вопрос был дан в десятке вопросов SO, но у меня все еще есть проблема.
Я выполнил следующие шаги: Как правильно переименовать каталог в репозитории Git?
У меня есть проект Laravel, использующий Vue во внешнем интерфейсе. Структура примерно такая:
- /Components
- /Layouts
- /Components
- Layout1.vue
- Layout2.vue
- /Pages
- /Shared
- /Components
Мы хотим обновить его до:
- /components <= moving /Shared/Components here as well
- /layouts
- /partials
- Layout1.vue
- Layout2.vue
- /pages
Предлагается использовать двухэтапный процесс:
git mv casesensitive tmp
git mv tmp CaseSensitive
Я пробовал это, но не сработало. При попытке объединить/извлечь/переключить/выбрать/перебазировать в другую ветку я постоянно получаю следующую ошибку:
error: The following untracked working tree files would be overwritten by checkout:
resources/js/Components/Notifications.vue
resources/js/Components/PhoneCodeConfirmation.vue
resources/js/Components/SMSCredit.vue
Please move or remove them before you switch branches.
Aborting
Поэтому вместо этого я попытался зафиксировать свои изменения и отправить их после первого шага:
git mv resources/js/Components resources/js/components_temp
git commit -am "updated to temporary folder name"
git push
На данный момент это работает, потому что имя папки совершенно другое. Затем делаю окончательное переименование:
git mv resources/js/components_temp resources/js/components
git commit -am "updated to lowercase folder name"
git push
Толкает правильно. Однако я все еще получаю ту же ошибку following untracked working tree files would be overwritten by checkout
.
Кто-нибудь знает, почему?
РЕДАКТИРОВАТЬ Это происходит со всеми папками, которые я переименовываю в строчные буквы. Двухэтапный процесс не предотвращает этого. Это похоже на то, что мое рабочее дерево git все еще отслеживает старое имя даже после выполнения описанных выше шагов.
Поскольку все решения, которые я нашел в Интернете, похоже, мне не помогли, я использовал следующий обходной путь, чтобы заставить его работать. Я скопировал все на новый путь:
cp -R resources/js resources/app
Затем я смог переименовать все каталоги/файлы внутри этой новой папки так, как я хотел. Все, что мне нужно было сделать, это удалить старый и добавить новый:
git rm resources/js
git add resources/app
(Мне также пришлось указать моему приложению новый путь, но это легко). Единственное, что расстраивает во всем этом, это то, что я до сих пор не знаю, почему это не сработало и почему так сложно переименовать каталог в git на Mac.