Сохранять игнорируемые файлы из состояния git

Я хотел бы остановить Git от показа игнорируемых файлов в git status, потому что имея тонны документации и конфигурационных файлов в списке Измененных, но не обновленных файлов, отображает список бесполезным.

Нормально ли для Git показывать эти файлы?

Я помещаю информацию об игнорировании в файл .gitignore в корневой каталог репозитория Git, и они не добавляются при использовании git add ., но, похоже, они также не полностью игнорируются, поскольку они отображаются в вышеупомянутый список и не отображаются в списке, напечатанном git ls-files --others -i --exclude-standard. Там отображаются только файлы, сопоставляемые шаблонами в ~/.gitignore.

Может быть, потому, что на более раннем этапе я не игнорировал их, и поэтому они были совершены хотя бы один раз?

Ответ 1

Как я нашел в этом сообщении, .gitignore работает только для невоспроизводимых файлов. Если вы добавили файлы в репозиторий, вы можете:

git update-index --assume-unchanged <file>

или удалить их из репозитория

git rm --cached <file>

Изменить

В этой статье также объясняется, что

Ответ 2

У меня возникла эта проблема, возможно, потому, что вы добавили свой проигнорированный каталог/файлы в .gitignore после того, как они были отмечены как "отслеживаемые" GIT в начальном потоке фиксации.

Итак, вам нужно очистить кеш отслеживания GIT следующим образом:

git rm --cached -r [folder/file name]

Более подробное объяснение можно прочитать здесь: http://www.frontendjunkie.com/2014/12/stop-git-from-tracking-changes-to.html

Вышеупомянутая команда также удалила остатки папки/файлов с вашего удаленного источника GIT. Таким образом, ваши репозитории GIT станут чистыми.

Ответ 3

От человека git -lsfiles:

-i, --ignored
Show ignored files in the output. Note that this also reverses any exclude list present.

Лично я стараюсь хранить файлы doxygen в своем исходном дереве, поэтому я просто добавил это в свой .gitignore (который находится в самой верхней директории моего исходного дерева):

docs/*

Надеюсь, что это поможет.

Ответ 4

как это

git --ignored myfolder

И покажет статус только для myfolder

Ответ 5

Это работает верно git rm --cached -r [имя папки/файла]