HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>В процессе работы над любым проектом в директории с кодом создаются файлы, которые не являются частью исходного кода. Все эти файлы можно условно разделить на несколько групп:</p>
1 <p>В процессе работы над любым проектом в директории с кодом создаются файлы, которые не являются частью исходного кода. Все эти файлы можно условно разделить на несколько групп:</p>
2 <ul><li>Инструментарий<ul><li>Служебные файлы, добавляемые операционной системой - например,<em>.DS_Store</em>в MacOS</li>
2 <ul><li>Инструментарий<ul><li>Служебные файлы, добавляемые операционной системой - например,<em>.DS_Store</em>в MacOS</li>
3 <li>Конфигурационные и временные файлы редакторов - например,<em>.idea</em>или<em>.vscode</em></li>
3 <li>Конфигурационные и временные файлы редакторов - например,<em>.idea</em>или<em>.vscode</em></li>
4 </ul></li>
4 </ul></li>
5 <li>Временные файлы<ul><li>Логи - в них содержится полезная информация для отладки, которая собирается во время запуска и работы приложения</li>
5 <li>Временные файлы<ul><li>Логи - в них содержится полезная информация для отладки, которая собирается во время запуска и работы приложения</li>
6 <li>Кеши - файлы, которые нужны для ускорения разных процессов</li>
6 <li>Кеши - файлы, которые нужны для ускорения разных процессов</li>
7 </ul></li>
7 </ul></li>
8 <li>Артефакты<ul><li>Результаты сборки проекта - например, после компиляции или сборки фронтенда</li>
8 <li>Артефакты<ul><li>Результаты сборки проекта - например, после компиляции или сборки фронтенда</li>
9 <li>Зависимости, которые устанавливаются во время разработки - например,<em>node_modules</em>или<em>vendor</em></li>
9 <li>Зависимости, которые устанавливаются во время разработки - например,<em>node_modules</em>или<em>vendor</em></li>
10 <li>Результаты выполнения тестов - например, информация о покрытии кода тестами</li>
10 <li>Результаты выполнения тестов - например, информация о покрытии кода тестами</li>
11 </ul></li>
11 </ul></li>
12 </ul><p>Все это в обычной ситуации не должно попадать в репозиторий. В этом уроке вы узнаете, как проигнорировать эти файлы.</p>
12 </ul><p>Все это в обычной ситуации не должно попадать в репозиторий. В этом уроке вы узнаете, как проигнорировать эти файлы.</p>
13 <p>Как правило, эти файлы не несут никакой пользы с точки зрения исходного кода. Они создаются:</p>
13 <p>Как правило, эти файлы не несут никакой пользы с точки зрения исходного кода. Они создаются:</p>
14 <ul><li>Автоматически (кеши, логи)</li>
14 <ul><li>Автоматически (кеши, логи)</li>
15 <li>По запросу (например, скачиваются зависимости или собирается проект)</li>
15 <li>По запросу (например, скачиваются зависимости или собирается проект)</li>
16 </ul><p>Главная проблема с этими файлами в их постоянном изменении - особенно при очень больших размерах проекта. Если добавлять их в репозиторий, то практически в каждом коммите будут не только изменения исходного кода, но и пачка изменений в этих файлах. Читать историю таких коммитов крайне сложно.</p>
16 </ul><p>Главная проблема с этими файлами в их постоянном изменении - особенно при очень больших размерах проекта. Если добавлять их в репозиторий, то практически в каждом коммите будут не только изменения исходного кода, но и пачка изменений в этих файлах. Читать историю таких коммитов крайне сложно.</p>
17 <p>Git позволяет гибко настраивать игнорирование определенных файлов и директорий. Делается это с помощью файла<em>.gitignore</em>, который нужно создать в корне проекта. В этот файл с помощью текстового редактора добавляются имена файлов и директорий, которые надо игнорировать:</p>
17 <p>Git позволяет гибко настраивать игнорирование определенных файлов и директорий. Делается это с помощью файла<em>.gitignore</em>, который нужно создать в корне проекта. В этот файл с помощью текстового редактора добавляются имена файлов и директорий, которые надо игнорировать:</p>
18 <p>Git поддерживает игнорирование файлов, но сам его не настраивает. Для игнорирования файлов и директорий, программист должен создать файл<em>.gitignore</em>в корне проекта и добавить его в репозиторий. Пример вы можете посмотреть<a>здесь</a>.</p>
18 <p>Git поддерживает игнорирование файлов, но сам его не настраивает. Для игнорирования файлов и директорий, программист должен создать файл<em>.gitignore</em>в корне проекта и добавить его в репозиторий. Пример вы можете посмотреть<a>здесь</a>.</p>
19 <p>Продолжим работать с<em>.gitignore</em>:</p>
19 <p>Продолжим работать с<em>.gitignore</em>:</p>
20 <p>Как только<em>.gitignore</em>создан и в него добавлен какой-то файл или директория, игнорирование заработает автоматически. Все новые файлы, попадающие под игнорирование, не отобразятся в выводе команды git status.</p>
20 <p>Как только<em>.gitignore</em>создан и в него добавлен какой-то файл или директория, игнорирование заработает автоматически. Все новые файлы, попадающие под игнорирование, не отобразятся в выводе команды git status.</p>
21 <p>Иногда бывает такое, что программист случайно уже добавил в репозиторий файл, который нужно проигнорировать. В этой ситуации недостаточно обновить правила игнорирования. Дополнительно придется удалить файл или директорию из Git с помощью git rm и закоммитить.</p>
21 <p>Иногда бывает такое, что программист случайно уже добавил в репозиторий файл, который нужно проигнорировать. В этой ситуации недостаточно обновить правила игнорирования. Дополнительно придется удалить файл или директорию из Git с помощью git rm и закоммитить.</p>