По какому образцу следует .gitignore?
Вот содержимое моего текущего каталога.
$ ls
foo.foo
$ ls -a
. .. .bar.foo .foo foo.foo .gitignore
Затем я превращаю этот каталог в git-репозиторий.
$ git init
Initialized empty Git repository in /home/lone/foo/.git/
$ ls -a
. .. .bar.foo .foo foo.foo .git .gitignore
Вот содержание.gitignore
.
$ cat .gitignore
*.foo
Я вижу, что картина в.gitignore
ведет себя иначе, чем тот же шаблон в оболочке. В оболочке*.foo
соответствует только не скрытым файлам, т.е. именам файлов, которые не начинаются с точки.
$ echo *.foo
foo.foo
Но*.foo
в.gitignore
кажется, соответствует любым файлам, скрытым или не скрытым, который заканчивается.foo
.
$ git status
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitignore
nothing added to commit but untracked files present (use "git add" to track)
Где я могу узнать больше о точном определении шаблонов, которым следует .gitignore, чтобы я мог понять, где и почему его поведение отличается от поведения шаблонов оболочки?