Держите проигнорированные файлы вне статуса git - PullRequest
108 голосов
/ 30 ноября 2009

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

Это нормально для Git, чтобы показать эти файлы?

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

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

Ответы [ 8 ]

195 голосов
/ 30 ноября 2009

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

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

или удалите их из хранилища с помощью

git rm --cached <file>

Редактировать

Эта статья объясняет это тоже

12 голосов
/ 27 апреля 2016

У меня также возникла эта проблема, возможно, потому, что вы добавили игнорируемые каталог / файлы в .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 голосов
/ 26 июня 2018

Проблема может заключаться в том, что этот файл все еще находится в кэше git. Для решения этой проблемы необходимо сбросить кеш git.

Сброс кеша git. Это удаляет все из индекса.

git rm -r --cached . 

Добавить все файлы еще раз:

git add . 

Commit:

git commit -m ".gitignore was fixed." 
1 голос
/ 18 февраля 2018

Я предполагаю, что вы не хотите добавлять каталог tmp (Visual Studio Platform)

1 - добавить строки ниже в ваш локальный файл .gitignore

## ignore tmp
/tmp/
./tmp/

3 - резервное копирование и удаление папки tmp локально. (Резервное копирование в другом месте. Например, рабочий стол?)

4 - зафиксировать изменения в Local, чем Sync to Remote (например, Github).

После этих шагов ваш каталог tmp больше не будет загружаться.

1 голос
/ 03 октября 2016

Это, безусловно, работает,

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

0 голосов
/ 20 июля 2018

Следующие шаги работают только для неотслеживаемых файлов . Эта информация применима для следующей конфигурации:

Platform: linux

Git version: git version 1.8.3.1

Поместить список файлов, которые следует игнорировать, в файл «exclude», присутствующий в следующем месте.

<path till .git directory>/.git/info/exclude

Исходное содержимое файла «исключить»

# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~

Конечное содержимое файла «исключить»

# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~


*.tar
*.gch
0 голосов
/ 08 апреля 2015

как это

git --ignored myfolder

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

0 голосов
/ 30 ноября 2009

От man git-lsfiles :

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

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

docs/*

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

...