Страницы

Поиск по вопросам

вторник, 9 октября 2018 г.

Для чего нужен файл .gitignore?

Для чего нужно использовать файл .gitignore, если можно просто выбрать файлы которые необходимо закоммитить, и сделать это?


Ответ

Есть несколько задач, которые наиболее эффективно решаются с использованием файла .gitignore
Не мучаться с выбором нужных файлов для индексации (которая git add).
В большом проекте часто бывает много файлов, которые не подлежат версионированию. Свою лепту вносят редакторы и среды разработки, компиляторы, дебаггеры, прочие инструменты и сама операционная система. А ещё вам может быть удобно хранить какие-то промежуточные результаты в папке tmp
Настройка .gitignore позволяет не выискивать нужные файлы, а добавлять всё сразу или по крайней мере уточнять меньше. Соглашусь с комментарием Etki, подход "просто выбрать нужные" совершенно не масштабируется. Сделать локальный конфиг, который не будет затронут pull-ом
Предположим, для работы вашего проекта нужен конфиг. Значения в нем зависимы от места выполнения, погоды и настроения разработчика.
Вариант 1: сделать local.conf и вносить изменения при необходимости. Если вы его вдруг добавите и закоммитите, то у вас будут конфликты при pull/push. Или с пуллом к вам придёт чужой конфиг.
Вариант 2: версионируемый local.conf.example и игнорируемый local.conf. В работе используется второй, для его формирования вручную или автоматически используется первый. Хорошо, удобно и не препятствует автоматизации. У меня так конфигурируются автотесты, запускаемые локально и на сервере интеграции. Защитить чувствительную информацию от случайного раскрытия
Случается, что вы случайно добавили и закоммитили ключи или пароли от какого-нибудь облачного хранилища, например Amazon. А потом запушили это добро на GitHub. Что нужно делать в такой ситуации? Очень быстро бежать и менять все ключи и пароли, т.к. почти наверняка за ваш счёт уже майнятся биткойны.
Если так уж необходимо хранить чувствительную информацию в папке проекта, то нужно положить её в под-папку, игнорируемую git. Быстро очищать проект от временных файлов
Предположим, что вы пишете на компилируемом языке и при построении вашего проекта формируется множество промежуточных файлов (объектные, прекомпиляция, вот это всё). Перед каждой сборкой необходимо их удалять, чтобы в случае чего не прилинковать лишнее. Можно делать это вручную. Можно написать скрипт. А можно просто добавить их в .gitignore и делать так:
git clean -fX

Комментариев нет:

Отправить комментарий