я добавляю это в файл .gitignore
.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
Ответы:
Ваш
.gitignore
работает, но он все еще отслеживает файлы, потому что они уже были в индексе.Чтобы остановить это, вы должны сделать:
git rm -r --cached .idea/
Когда вы
.idea/
фиксируете каталог, он будет удален из вашего репозитория git, и следующие коммиты будут игнорировать.idea/
каталог.PS: Вы можете использовать
.idea/
вместо того,.idea/*
чтобы игнорировать каталог. Вы можете найти более подробную информацию о закономерностях на на .gitignore странице человека .Полезная цитата из
git-rm
справочной страницыисточник
.gitignore
а затем делатьgit rm -cached
?commit
после удаления кэшированных файлов? Это действительно кажется нелогичным; это файлы, которые я НЕ хочу фиксировать. И я не хочу, чтобы они были удалены из хранилища (я просто хочу, чтобы они больше не болтались вокруг моегоgit status
). Или я просто очень запутался?Для людей, которые все еще ищут эту проблему, смотрят только на этой странице.
Это поможет вам удалить кэшированные индексные файлы, а затем добавить только те, которые вам нужны, включая изменения в вашем
.gitignore
файле.Вот немного больше информации.
источник
Решения, предлагаемые здесь и в других местах, не сработали для меня, поэтому я добавлю дискуссию для будущих читателей. Я по общему признанию еще не полностью понимаю процедуру, но наконец решил мою (подобную) проблему и хочу поделиться.
Я случайно кэшировал некоторые каталоги документов с несколькими сотнями файлов при работе с git в IntelliJ IDEA в Windows 10, и после добавления их
.gitignore
(и НЕВЕРНО перемещая их немного) я не смог удалить их из списка изменений по умолчанию.Сначала я зафиксировал фактические изменения, которые я сделал, а затем решил эту проблему - это заняло у меня слишком много времени. Я пытался,
git rm -r --cached .
но всегда получалpath-spec
ОШИБКИ, с различными вариациями,path-spec
а также с-f
и-r
флагами.git status
будет по-прежнему показывать имена файлов, поэтому я попытался использовать некоторые из них дословноgit rm -cached
, но не повезло. Кажется, сработали и распаковали изменения, но через какое-то время они снова встали в очередь (на точных сроках я не уверен). Я наконец удалил эти записи для хорошего использованияЯ предполагаю, что это ХОРОШАЯ ИДЕЯ, когда у вас нет инсценированных / кэшированных изменений, которые вы действительно хотите зафиксировать.
источник
Просто добавь
git rm -r --cached <folder_name/file_name>
Иногда вы обновляете файл .gitignore после команды commit файлов. Таким образом, файлы кэшируются в памяти. Чтобы удалить кэшированные файлы, используйте приведенную выше команду.
источник
Git добавить.
Git status // Проверить файл, который изменяется
// git reset HEAD --- заменить файл, который вы хотите игнорировать
git reset HEAD .idea / <- Те, кто хотел исключить .idea из перед коммитом // git, проверяют состояние и файл идеи исчезнет, и вы готовы к работе!
git commit -m ''
мерзавец
источник