Git все еще показывает файлы, измененные после добавления в .gitignore

Я добавляю это в файл .gitignore

.idea/*

но в любом случае статус:

#       modified:   .gitignore
#       modified:   .idea/.generators
#       modified:   .idea/dovezu.iml
#       modified:   .idea/misc.xml
#       modified:   .idea/workspace.xml

что я делаю неправильно? я даже добавил .idea/* к глобальному ~/.gitignore_global но статус git, в любом случае показывает мне:

#       modified:   .gitignore
#       modified:   .idea/.generators
#       modified:   .idea/dovezu.iml
#       modified:   .idea/misc.xml
#       modified:   .idea/workspace.xml

Ответ 1

Ваш .gitignore работает, но он все еще отслеживает файлы, потому что они уже были в индексе.

Чтобы остановить это, вы должны сделать: git rm -r --cached .idea/

Когда вы фиксируете каталог .idea/, он будет удален из вашего репозитория git, а следующие коммиты будут игнорировать каталог .idea/.

PS: Вы можете использовать .idea/ вместо .idea/*, чтобы игнорировать каталог. Вы можете найти больше информации о шаблонах на справочной странице .gitignore.


Полезная цитата из справочной страницы git-rm

--cached
    Use this option to unstage and remove paths only from the index. 
    Working tree files, whether modified or not, will be left alone.

Ответ 2

Для тех, кто все еще ищет эту проблему, просматривают только эту страницу.

Это поможет вам удалить кэшированные индексные файлы, а затем добавить только те, которые вам нужны, включая изменения в вашем файле .gitignore.

1. git rm -r --cached .  
2. git add .
3. git commit -m 'Removing ignored files'

Здесь - немного больше информации.

  1. Эта команда удалит все кэшированные файлы из индекса.
  2. Эта команда добавит все файлы, кроме тех, которые упомянуты в gitignore.
  3. Эта команда снова зафиксирует ваши файлы и удалит файлы, которые вы хотите игнорировать git, но сохраните их в локальном каталоге.

Ответ 3

  1. Git добавить.
  2. Git status//Проверить файл, который изменяется

    //git reset HEAD --- заменить файл, который вы хотите игнорировать

  3. git reset HEAD.idea/<- Те, кто хотел исключить .idea из перед коммитом //git, проверяют состояние и файл идеи исчезнет, и вы готовы к работе!

  4. git commit -m ''

  5. мерзавец