Подтвердить что ты не робот

Git игнорирует файлы, которые не находятся в gitignore

У меня есть репозиторий git, который игнорирует файлы изображений, а также несколько других файлов, но в моем файле .gitignore он игнорирует файл config.php. Есть ли какой-то файл глобального игнорирования где-то, что я не могу найти? Я должен указать файлы, чтобы добавить их сейчас, и это дает мне это предупреждение:

Следующие пути игнорируются одним из ваших файлов .gitignore.

Содержимое моего файла ~/.gitconfig - это только мой адрес электронной почты.

4b9b3361

Ответ 1

Проверьте это:

  • Вы искали другие .gitignore файлы, так как их может быть много.

  • Кроме того, посмотрите на REPO/.git/config, чтобы увидеть, есть ли что-нибудь.

  • Репо исключить Локальные правила для каждого репо могут быть добавлены в файл .git/info/exclude в вашем репо. Эти правила не передаются с репо, поэтому они не передаются другим. Этот метод может быть использован для локально генерируемых файлов, которые вы не ожидаете от других пользователей, таких как файлы, созданные вашим редактором.

Ответ 2

git check-ignore

Используйте git check-ignore для отладки вашего файла gitignore (исключить файлы).

Например:

$ git check-ignore -v config.php
.gitignore:2:src    config.php

Вышеописанная информация о шаблоне соответствия (если есть) для каждого заданного имени пути (включая строку).

Итак, возможно, расширение вашего файла не игнорируется, но весь каталог.

Возвращаемый формат:

<source> <COLON> <linenum> <COLON> <pattern> <HT> <pathname>

Или используйте следующую команду для печати .gitignore в папке пользователя HOME и папки репозитория:

cat ~/.gitignore "$(git rev-parse --show-toplevel)"/.gitignore "$(git rev-parse --show-toplevel)"/.git/info/exclude

В качестве альтернативы используйте git add -f, который позволяет добавлять в противном случае игнорируемые файлы.

Подробнее см. man gitignore, man git-check-ignore.

Синтаксис

git check-ignore [options] pathname...

git check-ignore [опции] --stdin

Ответ 3

Хорошо бы знать, что ваша конфигурация git может содержать файл core.excludesfile, который является путем к файлу с дополнительными шаблонами, которые игнорируются. Вы можете узнать, есть ли у вас такая конфигурация, запустив (в проблемном git repo):

git config core.excludesfile

Если он печатает путь к файлу, посмотрите дополнительную информацию о содержимом этого файла.

В моем случае я установил git через старую версию boxen, которая проигнорировала шаблон "Значок?". что в моем случае дал мне предупреждение, упомянутое в этом вопросе, для значков в папке (я на файловой системе, не учитывающей регистр, что значки значков Icon).

Ответ 4

У меня была та же проблема: с этой ошибкой каталог git игнорировался:

➭ git add app/views/admin/tags/
The following paths are ignored by one of your .gitignore files:
app/views/admin/tags
Use -f if you really want to add them.
fatal: no files added

Наконец-то выяснилось, что моя проблема была в моей строке ~/.gitignore_global:

TAGS

который соответствовал пути app/views/admin/tags. Я исправил его, добавив ведущую косую черту в глобальный файл gitignore

/TAGS

и git снова начали отслеживать мой каталог.

Ответ 5

Для меня у меня случайно был подстановочный знак в файле ~/.gitignore_global. Может быть, проверьте там?

Ответ 6

Другое дело: у меня был каталог B со своим собственным хранилищем .git, вложенным в мой проектный каталог A (но не как подмодуль). Я внесла некоторые изменения в B и хотел сделать это в субмодуле bonafide. Я полагаю, что git A автоматически игнорировал B, поскольку содержал свой собственный репозиторий (см. Вложенные репозитории git без подмодулей?). Я переименовал папку B и попытался снова клонировать ее в качестве подмодуля, и это привело меня к ошибочному сообщению об ошибке "проигнорировано сообщением .gitignore". Решение заключалось в удалении .git из B.

Ответ 7

У меня была такая же проблема, как у вас. Единственный ответ, который вы получили, перечисляет несколько мест для проверки, но ни один из них не решил проблему для меня, и из вашего комментария я тоже не думаю для вас. У меня не было файлов OTHER .gitignore, скрытых ниже в дереве каталогов; ничего в .git/config; ничего в .git/ingore/exclude

Если у вас все еще есть проблема, отметьте этот ответ. Он решил проблему для меня

В принципе, проверьте файл ~/ .gitignore. Шахта называлась ~/.gitignore_global. Я не знаю, когда он был создан ( I, конечно, не сделал этого), но я попробовал тонну другой установки git, когда я впервые установил, поэтому один из них, должно быть, есть.

Надеюсь, что его ответ поможет вам!

Ответ 8

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

Если вместо этого вы выполните команду git commit, но ни одно из условий не изменилось (git submodule add будет продолжать кричать, что ваши файлы .gitignore будут виноваты), вместо этого вы увидите другой отчет об ошибке:

$ git commit -a
fatal: Unable to create '..../.git/index.lock': File exists.

If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git
process is running and remove the file manually to continue.

и действительно удаляет файл блокировки:

rm .git/index.lock

устраняет проблему. (Это происходит с git версией 2.1.0.9736. Он может быть исправлен в будущих выпусках git.)

Ответ 9

Также проверьте ~/.gitignore и ~/.gitignore_global, которые могут быть созданы некоторыми Git клиентами (например, Atlassian SourceTree на Mac OS X).

Ответ 10

Убедитесь, что у вас есть разрешение на эту папку. Я просто столкнулся с этим, и это произошло потому, что папка принадлежала пользователю www-data, а не пользователю, в который я был подключен к терминалу.

Ответ 11

Убедитесь, что файл .gitignore не игнорирует себя. Общей ошибкой является добавление правила * в файл .gitignore для игнорирования каждого файла в текущей папке. Решением этого является добавление исключения в .gitignore:

*
!.gitignore

Таким образом, все файлы в каталоге будут игнорироваться, кроме .gitignore.

Ответ 12

В моем случае это была прямая косая черта в моем пути, вызывающая проблему...

Не работает

/srv/bootstrap/

Работа

srv/bootstrap/

Ответ 13

Еще одна вещь: если каталог, в котором вы находитесь, требует доступа root для записи или выполнения, убедитесь, что вы находитесь у пользователя root. У меня действительно была странная ошибка, когда я пытался добавить подмодуль, и git продолжал жаловаться, что путь, к которому я клонировал, игнорировался файлом игнорирования git. Затем я перешел на пользователя root, снова запустил подмодуль, и проблем не возникло.