TGStat
TGStat
Type to search
Advanced channel search
  • flag English
    Site language
    flag Russian flag English flag Uzbek
  • Sign In
  • Catalog
    Channels and groups catalog Regional compilations Thematic compilations Платные каналы Search for channels
    Add a channel/group
  • Ratings
    Rating of channels Rating of groups Posts rating
    Ratings of brands and people
  • Analytics
  • Search by posts
  • Telegram monitoring
  • Promotion
    Advertising through Yandex Business Advertising in channels through TGStat Agency Advertising on TGStat.ru website
Кот Денисова

16 Jul, 09:20

Open in Telegram Share Report

👩‍💻 .gitignore - не единственный способ заставить Git игнорировать файлы.

Большинство разработчиков знают про .gitignore. Файл в корне проекта, куда складывают node_modules, .env, логи и прочий мусор, который не должен попасть в репозиторий. Но Git умеет игнорировать файлы не только с помощью .gitignore. Есть еще два уровня и каждый решает свою задачу.


Три уровня игнорирования:

🔹Первый уровень - .gitignore. Это классика. Файл лежит в репозитории, попадает под контроль версий и работает у всех, кто клонирует проект. Сюда пишут все, что относится к проекту целиком: зависимости, артефакты сборки, локальные конфиги IDE.

🔹Второй уровень - .git/info/exclude. Файл внутри директории .git. Он работает так же, как .gitignore, но не попадает в коммиты. Это место для личных правил, которые нужны только вам: черновики, заметки, экспериментальные скрипты.

🔹Третий уровень - ~/.config/git/ignore. Глобальный файл для всех репозиториев на вашей машине. Сюда добавляют то, что мешает везде. Например, на macOS это .DS_Store. На Windows - Thumbs.db. Настройка делается один раз и забывается.


Когда что использовать:

🔹.gitignore - для командных правил. Если файл должен игнорироваться у всех, кто работает над проектом, он идет сюда.

🔹.git/info/exclude - для личных правил внутри одного репозитория. У вас есть файл notes.txt с пометками для себя. Добавлять его в .gitignore не хочется - коллегам он не нужен. В exclude он не отслеживается только у вас.

🔹~/.config/git/ignore - для системных файлов. .DS_Store, Thumbs.db, .swp - все, что создается автоматически и раздражает в каждом проекте.


Как проверить, кто именно игнорирует файл:

Когда правил много, легко запутаться. Git дает команду git check-ignore -v, которая показывает, какой именно файл игнорирует конкретный файл.


$ git check-ignore -v .DS_Store
/Users/user/.config/git/ignore:2:.DS_Store .DS_Store


Если файл игнорируется .gitignore, вывод начнется с .gitignore. Если exclude - с .git/info/exclude. Если глобальным ignore - с путем в домашней директории. Если команда ничего не выводит - файл никто не игнорирует.


🔗 Читать подробнее


💡 Вывод:

Git дает три уровня игнорирования и каждый решает свою задачу. .gitignore - для командных правил. .git/info/exclude - для личных исключений в одном репозитории. ~/.config/git/ignore - для глобальной чистоты на всей машине.

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


Подписаться на канал:
➡️ Кот Денисова

476 1 5 10
Catalog
Channels and groups catalog Channels compilations Search for channels Add a channel/group
Ratings
Rating of Telegram channels Rating of Telegram groups Posts rating Ratings of brands and people
API
API statistics Search API of posts API Callback
Our channels
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Read
Академия TGStat Telegram Research 2019 Telegram Research 2021 Telegram Research 2023
Contacts
Справочный центр Support Email Jobs
Miscellaneous
Terms and conditions Privacy policy Public offer
Our bots
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot