[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-git-chto-takoe-gitignore-i-kak-ego-pravilno-nastroit":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":18,"progress":19,"seo":20},1335,"chto-takoe-gitignore-i-kak-ego-pravilno-nastroit",44,"git","Git","📦","Что такое .gitignore и как его правильно настроить?",".gitignore — это файл конфигурации Git, в котором указываются шаблоны (patterns) файлов и директорий, которые Git должен игнорировать и не включать в систему контроля версий.\n\n### Синтаксис шаблонов\n\n```gitignore\n# Комментарий\n\n# Игнорировать конкретный файл\nsecret.properties\n\n# Игнорировать все файлы с расширением\n*.class\n*.jar\n*.log\n\n# Игнорировать директорию\ntarget\u002F\nbuild\u002F\nout\u002F\n\n# Игнорировать файлы в любой вложенной директории\n**\u002Flogs\u002F\n\n# Отрицание — НЕ игнорировать файл (исключение из правила)\n!important.log\n\n# Игнорировать файл только в корне репозитория\n\u002Fconfig.properties\n\n# Wildcard — один символ\n?.txt\n\n# Игнорировать все в директории, кроме определённого файла\nlogs\u002F*\n!logs\u002F.gitkeep\n```\n\n### Типичный .gitignore для Java-проекта\n\n\u003Cdetails>\n\u003Csummary>Развернуть пример .gitignore\u003C\u002Fsummary>\n\n```gitignore\n# Compiled class files\n*.class\n\n# Build directories\ntarget\u002F\nbuild\u002F\nout\u002F\n\n# IDE — IntelliJ IDEA\n.idea\u002F\n*.iml\n\n# IDE — Eclipse\n.classpath\n.project\n.settings\u002F\n\n# IDE — VS Code\n.vscode\u002F\n\n# Maven\npom.xml.tag\npom.xml.releaseBackup\npom.xml.versionsBackup\npom.xml.next\n\n# Gradle\n.gradle\u002F\ngradle-app.setting\n!gradle-wrapper.jar\n\n# Logs\n*.log\n\n# OS files\n.DS_Store\nThumbs.db\n\n# Environment and secrets\n.env\n*.properties.local\napplication-local.yml\n\n# Package files\n*.war\n*.ear\n```\n\n\u003C\u002Fdetails>\n\n### Глобальный .gitignore\n\n```bash\n# Создать глобальный файл игнорирования (для всех репозиториев)\ngit config --global core.excludesfile ~\u002F.gitignore_global\n\n# Содержимое ~\u002F.gitignore_global (для IDE и OS):\n# .idea\u002F\n# .DS_Store\n# Thumbs.db\n# *.swp\n```\n\n### Игнорирование уже отслеживаемого файла\n\n```bash\n# Если файл уже был закоммичен, .gitignore на него не действует\n# Нужно удалить из отслеживания:\ngit rm --cached src\u002Fmain\u002Fresources\u002Fsecret.properties\n# Файл останется на диске, но перестанет отслеживаться\n\n# Для директории:\ngit rm -r --cached target\u002F\n```\n\n### Ключевые моменты\n\n- `.gitignore` работает только для неотслеживаемых файлов. Если файл уже добавлен в Git, его нужно удалить через `git rm --cached`\n- Файл `.gitignore` размещается в корне репозитория, но может быть и в поддиректориях (действует на эту директорию и ниже)\n- Для IDE-специфичных файлов лучше использовать глобальный `.gitignore`, а не добавлять их в проектный\n- Пустые директории не отслеживаются Git — для сохранения структуры добавляют файл-заглушку `.gitkeep`\n\n### Частые ошибки\n\n- Забыть добавить `.gitignore` в начале проекта — потом приходится удалять файлы из отслеживания\n- Коммитить секреты (`.env`, ключи, пароли) — даже после удаления файла он остаётся в истории Git\n- Забывать про `git rm --cached` — добавление в `.gitignore` уже отслеживаемого файла не имеет эффекта\n- Игнорировать `gradle-wrapper.jar` — он должен быть в репозитории для сборки без установленного Gradle\n\n### Как используется в 2026\n\n- GitHub\u002FGitLab предлагают готовые шаблоны `.gitignore` при создании репозитория (Java, Maven, Gradle и т.д.)\n- Сервис gitignore.io генерирует `.gitignore` по набору технологий\n- Инструменты Secret Scanning в GitHub\u002FGitLab автоматически обнаруживают случайно закоммиченные секреты\n- `git-secrets` и `pre-commit` хуки предотвращают коммит секретов\n\n> **На собеседовании:** ключевой момент, который часто упускают: `.gitignore` не действует на уже отслеживаемые файлы — нужен `git rm --cached`. Покажите знание синтаксиса: `*`, `**`, `!` (отрицание), `\u002F` (только корень). Упомяните разницу между глобальным и проектным `.gitignore`.","","junior",[7,15,16,17],"основы","configuration","best-practices",[],null,{"title":21,"description":22,"ogTitle":23,"ogDescription":24,"keywords":25,"schemaAnswer":33,"featuredSnippetReady":34},"Что такое .gitignore и как его правильно настроить — Gymterview","Настройка .gitignore: синтаксис шаблонов (*, **, !), типичный файл для Java-проекта, глобальный .gitignore, удаление уже отслеживаемых файлов (git rm --cached).",".gitignore: синтаксис, шаблоны и настройка для Java-проекта — Gymterview","Синтаксис .gitignore, типичная конфигурация для Java, разница глобального и проектного, удаление уже отслеживаемых файлов.",[26,27,28,29,30,31,8,32],".gitignore","шаблоны","git rm --cached","глобальный gitignore","Java проект","секреты","собеседование",".gitignore — файл с шаблонами файлов и директорий, которые Git должен игнорировать. Синтаксис: * (wildcard), ** (любая вложенность), ! (отрицание), \u002F (только корень). Работает только для неотслеживаемых файлов — для уже добавленных нужен git rm --cached. Глобальный gitignore для IDE\u002FOS, проектный — для build\u002Fsecrets. Типичный Java: *.class, target\u002F, .idea\u002F, .env.",true]