HeadlinesBriefing favicon HeadlinesBriefing.com

Три файла Git ignore, о которых вы не знали

Hacker News •
×

Я годами носил с собой неотслеживаемые файлы в репозиториях — заметки в markdown, планы агентов — потому что добавление их в .gitignore казалось нечистым. Затем Claude предложил использовать .git/info/exclude, показав, что git на самом деле читает шаблоны игнорирования из трёх мест с одинаковым синтаксисом.

Во-первых, .gitignore в любой директории влияет на всех, кто клонирует репозиторий, и коммитится — идеально для выходных данных сборки вроде target/ или __pycache__/. Во-вторых, .git/info/exclude влияет только на ваш клон, никогда не коммитится и находится внутри .git, поэтому он защищён от случайных коммитов. Идеально для личных временных файлов. В-третьих, глобальный файл исключений (по умолчанию ~/.config/git/ignore) применяется ко всем репозиториям на вашей машине — отлично подходит для беспорядка от редакторов вроде .idea/, .vscode/, .DS_Store.

Использование простое: добавляйте шаблоны напрямую. На репозиторий: `echo 'plans/' >> .git/info/exclude`. Для связанных рабочих деревьев используйте `$(git rev-parse --git-common-dir)/info/exclude`. Глобально: создайте ~/.config/git/ignore и добавьте шаблоны, либо настройте пользовательский путь через `git config --global core.excludesFile ~/.gitignore_global`. Изменения вступают в силу немедленно в `git status` для неотслеживаемых файлов.

Примечание: Claude Code по умолчанию исключает игнорируемые файлы из @-autocomplete, поэтому планы исчезают из выбора после добавления в .git/info/exclude.

Ключевые сущности: Компании: Claude, Claude Code | Местоположения: ~/.config/git/ignore, $XDG_CONFIG_HOME/git/ignore

Часто задаваемые вопросы: В чём разница между .gitignore и .git/info/exclude?

.gitignore коммитится и делится со всеми, кто клонирует репозиторий, тогда как .git/info/exclude локален для вашего клона и никогда не может быть закоммичен случайно.