git по-прежнему показывает файлы как измененные после добавления в .gitignore - PullRequest
194 голосов
/ 17 марта 2012

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

.idea/*

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

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

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

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

Ответы [ 3 ]

332 голосов
/ 17 марта 2012

Ваш .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.
16 голосов
/ 07 июня 2018

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

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

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

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

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

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

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

  4. git commit -m ''

  5. git push
...