Случайно зафиксированные файлы каталога .idea в git
Я случайно передал каталог .idea/в git. Это вызывает конфликты во всем остальном, что мне нужно для проверки моего репо. Мне было интересно, как удалить эти файлы с удаленного?
Мне все же нужны эти файлы локально, так как их IDE требует. Я просто не хочу их в пульт. Я добавил каталог .idea/в мой .gitignore и зафиксировал и нажал этот файл на удаленный. Похоже, что это не повлияло на мою проверку на моей другой машине. Я все еще получаю сообщение об ошибке:
error: The following untracked working tree files would be overwritten by checkout:
.idea/.name
.idea/compiler.xml
.idea/copyright/profiles_settings.xml
.idea/encodings.xml
.idea/misc.xml
.idea/modules.xml
.idea/scopes/scope_settings.xml
.idea/uiDesigner.xml
.idea/vcs.xml
.idea/workspace.xml
Ответы
Ответ 1
Добавить каталог .idea в список игнорируемых файлов
Во-первых, добавьте его в .gitignore
, поэтому он не случайно совершается вами (или кем-то еще) еще раз:
.idea
Удалить его из репозитория
Во-вторых, удалите каталог только из репозитория, но не удаляйте его локально. Для этого сделайте то, что указано здесь:
Удалить файл из репозитория Git, не удаляя его из локальной файловой системы
Отправить изменения другим пользователям
В-третьих, зафиксируйте файл .gitignore
и удаление .idea
из репозитория. После этого надавите на пульт (ы).
Резюме
Полный процесс будет выглядеть следующим образом:
$ echo '.idea' >> .gitignore
$ git rm -r --cached .idea
$ git add .gitignore
$ git commit -m '(some message stating you added .idea to ignored entries)'
$ git push
(необязательно вы можете заменить последнюю строку на git push some_remote
, где some_remote
- это имя пульта, на который вы хотите нажать)
Ответ 2
Вы можете удалить его из репо и зафиксировать изменение.
git rm .idea/ -r --cached
git add -u .idea/
git commit -m "Removed the .idea folder"
После этого вы можете нажать его на пульт и каждый checkout/clone после этого будет нормально.