Что такое gitignore

mbaev 24.06.2018, 13:12

Если вы работаете с системой контроля версий GIT, то вам необходимо сразу же познакомиться с возможностью исключения файлов/папок/разделов из репозитория.

Что исключать?

Обычно исключаются динамические файлы и файлы хранящие секретные данные.
К первым можно отнести файлы генерируемые или загружаемые пользователями, файлы логов, временные файлы. Ко вторым - пароли, токены, коннекции базам данных и т.д.

Как это делается?

Обычно - двумя способами

1. Файл .gitignore

Этот файл всегда хранится в проекте. Он содержит правила исключения, каждый из которых имеет относительный путь. Он добавляется и хранится в самом репозитории. Таким образом, любой другой разработчик, скачавший себе проект будет иметь эти правила и не сделает ошибку, добавив ненужные файлы.

2. Глобальный файл исключений

Его можно положить в любом месте на компьютере и назвать как угодно, при этом объяснив программе git подробности об этом:

  1. git config --global core.excludesfile ~/.gitignore_global

В данном случае, файл называется .gitignore_global и лежит он в папке пользователя.

Зачем нужен глобальный файл исключений?

Предположим вы разрабатываете что-то используя любой JetBrains'овский продукт: Php Storm, RubyMine, Intellij Idea и т.п. Любой из них создаёт в корне проекта папку .idea со своими настройками, который необходимо исключать. Можно добавлять исключение этой папки в каждом проекте, а можно объявить один раз в глобальном файле.

 

Другие подробности про gitignore тут: https://git-scm.com/docs/gitignore

Profile picture for user Гость

bumble , ,

  1. # Ignore IDE settings                                                                                                          
  2. .idea                                                                            
  3. .vscode-upload.json                                                              
  4.                                                                                  
  5. # Ignore specific meta files                                                    
  6. .phpstorm.meta.php                                                              
  7.                                                                                  
  8. # Ignore vendors                                                                
  9. node_modules  

Вот такой у меня сейчас.