Вот содержимое моего текущего каталога.
$ 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, чтобы я мог понять, где и почему его поведение отличается от поведения шаблонов оболочки оболочки?