.gitignore

Содержание
Введение
Синтаксис
Примеры
Другие статьи про Git

Введение

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

Пример файла .gitignore в котором мы указываету git не следить за ошибками, логами директорией .tmp и модулями nodejs

# Ignoring:
*.err
*.log
node_modules/
.tmp/

guides.github.com

Синтаксис

Примеры

ПаттернПримерПояснения
**/logs logs/debug.log
logs/monday/foo.bar
build/logs/debug.log
You can prepend a pattern with a double asterisk to match directories anywhere in the repository.
**/logs/debug.log logs/debug.log
build/logs/debug.log

но не
logs/build/debug.log
You can also use a double asterisk to match files based on their name and the name of their parent directory.
*.logdebug.log
foo.log
.log
logs/debug.log
An asterisk is a wildcard that matches zero or more characters.
*.log
!important.log
debug.log
trace.log

но не
important.log
logs/important.log
Prepending an exclamation mark to a pattern negates it. If a file matches a pattern, but also matches a negating pattern defined later in the file, it will not be ignored.
*.log
!important/*.log trace.*
debug.log
important/trace.log

но не
important/debug.log
Patterns defined after a negating pattern will re-ignore any previously negated files.
/debug.log debug.log
но не
logs/debug.log
Prepending a slash matches files only in the repository root.
debug.log debug.log
logs/debug.log
By default, patterns match files in any directory
debug?.log debug0.log
debugg.log
но не
debug10.log
A question mark matches exactly one character.
debug[0-9].log debug0.log
debug1.log
но не
debug10.log
Square brackets can also be used to match a single character from a specified range.
debug[01].log debug0.log
debug1.log
но не
debug2.log
debug01.log
Square brackets match a single character form the specified set.
debug[!01].log debug2.log
но не
debug0.log
debug1.log
debug01.log
An exclamation mark can be used to match any character except one from the specified set.
debug[a-z].log debuga.log debugb.log
но не
debug1.log
Ranges can be numeric or alphabetic.
logs logs
logs/debug.log
logs/latest/foo.bar
build/logs
build/logs/debug.log
If you don't append a slash, the pattern will match both files and the contents of directories with that name. In the example matches on the left, both directories and files named logs are ignored
logs/ logs/debug.log
logs/latest/foo.bar
build/logs/foo.bar
build/logs/latest/debug.log
Appending a slash indicates the pattern is a directory. The entire contents of any directory in the repository matching that name – including all of its files and subdirectories – will be ignored
logs/ !logs/important.log
logs/debug.log
logs/important.log
Wait a minute! Shouldn't logs/important.log be negated in the example on the left

Nope! Due to a performance-related quirk in Git, you can not negate a file that is ignored due to a pattern matching a directory
logs/**/debug.log logs/debug.log
logs/monday/debug.log
logs/monday/pm/debug.log
A double asterisk matches zero or more directories.
logs/*day/debug.log logs/monday/debug.log
logs/tuesday/debug.log
но не
logs/latest/debug.log
Wildcards can be used in directory names as well.
logs/debug.log logs/debug.log
но не
debug.log
build/logs/debug.log
Patterns specifying a file in a particular directory are relative to the repository root. (You can prepend a slash if you like, but it doesn't do anything special.)

Примеры

Пример .gitignore файла для Python проектов, который поддерживатеся сервисом GitHub :

Python.gitignore

Похожие статьи
Git
Установка
Основы
branch: Ветки
Перейти с HTTPS на SSH
.gitignore
Необходимые Bash команды
Remote
GitHub
GitLab
Ошибки
Git Bash
Работа с API GitHub