Сохранять игнорируемые файлы из состояния 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 [имя папки/файла]