gitignore
https://git-scm.com/docs/gitignore - gitignore https://mirrors.edge.kernel.org/pub/software/scm/git/docs/gitignore.html
Расположение
Глобально
Глобальный файл .gitignore, в котором определяются правила игнорирования для каждого репозитория Git в вашей локальной системе добавляется через git config:
git config --global core.excludesfile ~/путь_и_имя_файла
В репозитории
В репозитории .gitignore в корне репозитория общий для репозитория. В конкретных каталогах и подкаталогах — более локальные и более приоритетные.
Локально и не для распространения
Шаблоны именно для вашего локального репозитория не подлежащие распространению в другие репозитории должны быть в файле .git/info/exclude.
Команды git
А ещё есть git clean для чистки репозитория от всякого игнорируемого.
список всего игнорируемого
Команда git status с параметром –ignored отображает список всех игнорируемых файлов:
git status --ignored
где шаблон, из-за которого игнорируется файл
Чтобы проверить, почему файл dir/file игнорируется:
git check-ignore -v dir/file
Вывод показывает путь к файлу .gitignore, номер совпадающей строки и фактический шаблон.
www/.gitignore:31:/filename dir/filename
Можно несколько путей и имён. Файл не обязан существовать.
удалить из индекса файл, который был ранее зафиксирован
Но не удалять сам файл.
git rm --cached filename git rm -r --cached directory
- –cached указывает git не удалять файл из рабочего дерева, только из индекса.
- -n - dry-run, позволит посмотреть, что будет сделано.
Дальше можно добавить в исключения.
Основы синтаксиса
- Каждая строка - отдельный шаблон
- Пустые строки игнорируются
- Строки начинающиеся с # — комментарии.
- Символ "/" в начале строки указывает на текущую папку (где лежит .gitignore)
- Звёздочка(*) заменяет любое количество символов, но не /
- Две звёздочки(**) используются для указания всех подпапок
- Восклицательный знак(!) в начале строки инвертирует шаблон (используется для исключений)
- Для экранирования спецсимволов используется обратный слэш "\". В том числе для !
- Если шаблон заканчивается косой чертой, он применяется только к каталогам. Нет варианта применять только к файлам
- Исключенный каталог не просматривается, поэтому не получится исключить каталог, но добавить исключения
- Пробелы в конце строки игнорируются
