Страницы

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

понедельник, 2 декабря 2019 г.

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

#git #gitignore


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


Ответы

Ответ 1



Есть несколько задач, которые наиболее эффективно решаются с использованием файла .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

Ответ 2



игнорируемые файлы не будут перечисляться в выводе git status игнорируемые файлы не будут добавляться в индекс, даже если их имена подпадают под маску при вызове git add маска Для чего нужно использовать файл .gitignore скорее, не «нужно», а «можно»: это просто удобно.

Ответ 3



Если у вас вдруг появится множество файлов, которые надо будет закоммитить, то будет неудобно их перечислять. Поэтому проще указать перечень файлов, которые не надо отслеживать, а всё остальное считать рабочими файлами проекта и добавлять в полуавтоматическом режиме. В случае, когда проект обрастает большим кол-вом логов, файлов автоматической сборки и прочим, легче их добавить по маске в файл .gitignore и не переживать, что они попадут куда-то дальше вашей рабочей директории. Кроме того, можно создать один более-менее универсальный файл .gitignore под свои нужды (под свои "типы" проектов) и копипастить его из проекта в проект без необходимости создания с нуля каждый раз. P.S. Автоматизация - наше всё! (^^,)

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

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