Обкладинка нотатки: Що таке .gitignore? Для чого потрібен та як використовувати

Що таке .gitignore? Для чого потрібен та як використовувати

Зміст дописунатисність на посилання, щоб перейти до потрібного місця
.gitignore - це файл, який використовується в системі контролю версій Git для вказівки файлів та директорій, які повинні бути ігноровані Git. Це означає, що файли та директорії, зазначені у .gitignore, не будуть додані до індексу Git, не будуть відслідковуватися і не будуть потрапляти у коміти.

Навіщо потрібен .gitignore?

Файл .gitignore допомагає уникнути включення до репозиторія файлів, які не мають відношення до коду або не повинні бути загальнодоступними. Це можуть бути:
  • Файли конфігурації середовища розробки.
  • Лог-файли.
  • Згенеровані файли (наприклад, результати компіляції).
  • Файли тимчасового характеру (кеш, тимчасові файли).
  • Чутливі дані (наприклад, паролі або ключі доступу).

Приклад використання .gitignore

Створення файлу .gitignore:
У кореневій директорії вашого репозиторія створіть файл з назвою .gitignore.
Додавання файлів і директорій до .gitignore:
У файл .gitignore додавайте шаблони для файлів та директорій, які повинні бути ігноровані. Наприклад:
# Ігнорувати всі файли .DS_Store
.DS_Store

# Ігнорувати файли журналів
*.log

# Ігнорувати всі файли в директорії temp/
temp/

# Ігнорувати файли конфігурації IDE
.idea/
*.iml
Застосування .gitignore:
Після додавання записів до .gitignore, переконайтеся, що ці файли ще не були додані до індексу. Якщо вони вже були додані, видаліть їх з індексу за допомогою команди git rm --cached <filename> і зробіть коміт.

Як працює .gitignore?

  • Кожен рядок у .gitignore представляє шаблон для файлів, які повинні бути ігноровані.
  • Шаблони можуть бути простими назвами файлів або містити символи підстановки (wildcards) для більшої гнучкості.
  • Коментарі можуть бути додані за допомогою символу #.
  • .gitignore може бути розташований у будь-якій директорії репозиторія, і його дія буде обмежена цією директорією та піддиректоріями. Це доречі, іноді прям дуже зручно.
Доречі, файл .gitignore ви не побачите у Finder (тільки в редакторі коду або в терміналі виконавши ls -a). Прочитайте у попередньому дописі детальніше про приховані файли (з крапкою на початку).
Приклад файлу .gitignore для Ruby on Rails проєкту
# Ignore bundler config
/.bundle

# Ignore the default SQLite database
/db/*.sqlite3
/db/*.sqlite3-journal
/db/*.sqlite3-shm
/db/*.sqlite3-wal

# Ignore the default PostgreSQL and MySQL database files
/db/*.pg
/db/*.pg-journal
/db/*.mysql
/db/*.mysql-journal

# Ignore all logfiles and tempfiles
/log/*
/tmp/*
!/log/.keep
!/tmp/.keep

# Ignore uploaded files in development
/storage/*
!/storage/.keep

# Ignore application secret key
/config/master.key

# Ignore pidfiles, tempfiles, and byebug command history
/tmp
/tmp/pids
/tmp/cache
/tmp/sockets
/.byebug_history

# Ignore dotenv environment variable files
.env
.env.*

# Ignore node_modules
/node_modules
/yarn-error.log

# Ignore precompiled assets
/public/assets
/public/packs
/public/packs-test
/public/packs-dev

# Ignore compiled files
/public/assets
/public/packs
/public/packs-test
/public/packs-dev
/public/packs/css
/public/packs/js
/public/packs/images

# Ignore coverage results generated by SimpleCov
/coverage/

# Ignore minitest and rspec result files
/test/tmp
/test/version_cache
/spec/tmp
/spec/fixtures/files
/spec/examples.txt

# Ignore rubocop cache
/.rubocop-https*
/.rubocop_cache

# Ignore Capybara screenshots
/tmp/capybara/

# Ignore Redis stores
/tmp/redis/

# Ignore .DS_Store
.DS_Store

# Ignore backups
/backup/

# Ignore ActiveStorage uploaded files in development
/storage/*
!/storage/.keep
Зазвичай файл .gitignore наповнюється додатковими записами під час імплементації нового функціоналу проєкту. Наприклад, нова бібліотека створює тимчасові файли кешу на локальній машині - тож ми додаємо їх (або теку) до списку ігнорування. Перед комітом, ви побачите зайві файли і з легкістю ідентифікуєте, що саме треба додати до .gitignore.

🔗 Цитувати допис: "Що таке .gitignore? Для чого потрібен та як використовувати"

Якщо ви хочете процитувати цей допис у своїй роботі, статті, блозі, використовуйте наведену нижче інформацію.

Розгорнути деталі


🙌 Підтримати блог @memecode

Ви можете поширити цей допис у соцмережах, чим допоможете платформі цейво розвиватись (* ^ ω ^)

📝 Більше публікацій:
Обкладинка нотатки: Gosu Ruby Tutorial - пройдемось по офіційній документації
Обкладинка нотатки: Пишемо демо-гру Drones vs Zombies (Gosu / Ruby)
Обкладинка нотатки: Як пофіксити збій Windows викликаний CrowdStrike?
Обкладинка нотатки: Що означає .map(&:name) в Ruby?
Обкладинка нотатки: Як працює метод map в Ruby? Огляд роботи методу з прикладами
Обкладинка нотатки: Що означає крапка на початку файлу(.gitignore, .DS_Store, .bashrc тощо)?
Обкладинка нотатки: Як видалити файл .DS_Store з Git репозиторію?
Обкладинка нотатки: Що таке ідемпотентний метод?
Обкладинка нотатки: Що таке репозиторій?
Обкладинка нотатки: Що таке коміт (commit) у контексті програмування та SCM / Git?
Обкладинка нотатки: Що таке SCM (Source Control Management)?
Обкладинка нотатки: Яку ієрархію має DOM (Document Object Model)?
Дисклеймер

Інформація на сайті tseivo.com є суб'єктивною та відображає особисті погляди та досвід авторів та авторок блогів.

Використовуйте цей ресурс як одне з декількох джерел інформації під час своїх досліджень та прийняття рішень. Завжди застосовуйте критичне мислення. Людина сама несе відповідальність за свої рішення та дії.