Про gitignore
Иногда некоторые файлы нет смысла добавлять в индекс для отслеживания. Туда относятся файлы не относящиеся непосредственно к разработке:
- Логи
- Пользовательские файлы
- Файлы сред разработки (конфиги и т.д.)
- Внешние библиотеки
- Файлы local конфигурации
- Файлы ОС
- Слишком большие файлы без кода (бинарки и т.д.)
Для этого создается файл .gitignore, в котором и указываются игнорируемые файлы (папки писать со слэшем).
В файле .gitignore можно исключить игнорируемые файлы. Например, нужно игнорить все файлы txt в папке config/ кроме sample.txt, который к примеру служит шаблоном для создания новых txt файлов. Делается это добавлением перед filename восклицательного знака (!), который в IT означает отрицание:
configs/*.txt
!configs/sample.txt
Но не получится сделать так:
configs/
!configs/sample.txt
Потому что нельзя исключить файл из той папки, которая исключена целиком
Для наглядности всего вышеописанного приведу в пример один из своих файлов .gitignore:
*.log
a.html
configs/*
!configs/sample.txt