2 декабря, 2014

Git

Git ignore. Игнорирование в гит. Для начинающих

Есть различные ситуации, в каждой может применяться свой способ игнорирования. Разберу способы.

.gitignore — исключения в репозитории для всех

Игнорирование с помощью создания файла .gitignore прямо в содержимом репозитория приводит к тому, что:

  1. гит будет игнорировать изменения в файлах указанных в .gitignore;
  2. сам файл .gitignore будет проиндексирован гитом, и это хорошо;
  3. все разработчики проекта в результате clone/pull получат файл .gitignore и будут видеть изменения в нем.

Например, запуливаем в очередной раз к себе на машину проект, настройки („config“) указанные в .gitignore — не скачались, и великолепно, так как настройки подключения к БД на нашей машине другие. И при этом скачались „config-example“, которые могут подсказать, что не так в наших старых настройках.

.gitignore применяется в тех случаях, когда функционирование проекта без скрытых файлов не возможно, но эти файлы не являются обновляемым „ядром“ проекта. Возможно, это файлы настроек проекта, отображения (шаблоны) ну или файлы базы данных, например sqlite.db.

Применять для: настройки проекта, БД, шаблоны…

.git/info/exclude — исключения в репозитории, для исключения мусора проекта (проект тоже мусорит, ага)

Отредактировав файл .git/info/exclude мы получаем следующий эффект:

  1. гит будет игнорировать изменения в файлах указанных в .git/info/exclude;
  2. изменения в файле .git/info/exclude не индексируются гитом, и это хорошо;
  3. никто из разработчиков проекта в результате clone/pull не получит измененный файл .git/info/exclude и не будет видеть изменения в нем.

Если проект рабочий, а не на гитхабе и прямо в рабочей папке создан репозиторий, то сам проект создает кеш, логи и другие вспомогательные файлы. При необходимости стащить рабочее ядро проекта, для запуска копии или подобного проекта мы пуляем себе на машину ядро, и нам не зачем тащить логи кеш старого проекта. И мы даже не узнаем, что всё это ранее существовало. Для получения именно такого эффекта указываем исключения в данной настройке.

Применять для: кеш, логи…

~/.gitconfig, ~/.gitexcludes — исключения вне репозитория, для исключения мусора разработчиков

На машиене, на которой вы работаете, вы можете настроить скрытия „под себя“. Чтобы настроить гит на восприятия файла ~/.gitexcludes как файла с вашими исключениями, выполните команду для настройки: git config --global core.excludesfile ~/.gitexcludes или в ручную: внесите изменения в файл ~/.gitconfig: в раздел [core] добавить строку excludesfile = ~/.gitexcludes В результате настроек мы получим:

  1. гит будет игнорировать изменения в файлах указанных в ~/.gitexcludes;
  2. изменения в файле ~/.gitexcludes не индексируются гитом, это понятно, он же не в репозитории;
  3. никто из разработчиков проекта в результате вашего push не получит измененный файл ~/.gitexcludes и не увидит изменений в нём (ну ессесно!).

Во время вашей работы (программирования) могут создаваться вспомогательные файлы не относящиеся к проекту (настройки ваших программ, заметки…).

Применять для: настройки IDE, ваши личные заметки…


ЗЫ: вы же понимаете, что если файл уже был в репозитории и мы только сейчас решили его исключить (и так что бы он не появлялся при pull), то необходимо его удалить из индекса. Я часто находил этот вопрос при гуглении вместо своих вопросов, типа: „почему файл всё равно закачивается, хотя я его добавил в игнор?“

git rm --cached path/to/file

4 комментария к публикации „Git ignore. Игнорирование в гит. Для начинающих“

1. 30 Июня, 2016 | Василий

Спаисбо!

2. 5 Октября, 2016 | ваываываыва

PHP execution time: 0.0058 s. не самое важное нужно быть совсем рукожопым что бы тут чтот на рнр зсделать так что бы оно криво работало ты время в бд покажи... и вопрос зачем ?? )в

3. 5 Октября, 2016 | asdfasdf

кстаттььиии а что у тя с ждавойскриптомикусом ?? ) alert(1)

4. 9 Октября, 2016 | А что так негативить то?

Проект старый, не скрываю, еще на php_mysql, о да - жесть))) Рукожопно рукожопно написан ага. Ну вот ради прикола вывел время бд.

Добавить комментарий

2010–2018 Блог Максима Златова, контакты

PHP execution time: 0.0084 s.
SQL execution time: 0.0001 s. (select publication with comments)

Яндекс.Метрика