Случайно зафиксированные файлы каталога .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 после этого будет нормально.