以下是默认的.gitignore设置(通过GitExtensions建立时):
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
这让我感到困惑,因为我从https://gist.github.com/lachie83/17c1fff4eb58cf75c5fb11a4957a64d2了解**可以跨越目录,但*不能。因此,我不希望忽视以下路径
my/packages/build/foo
匹配**/packages/*
。因此,后面的反转线!**/packages/build/
似乎是不必要的。
然而,感觉有人因为某种原因而添加了倒置。
文件规范末尾的单个星号是否存在未记录的行为,这也会导致忽略子目录,或者默认的.gitignore是否错误?
答案 0 :(得分:1)
我不希望以下路径
my/packages/build/foo
匹配
**/packages/*
。
但事实并非如此。但您可以概括地忽略整个目录,**/packages/*
匹配my/packages/build
。根本没有检查忽略的目录,因此结果就像你的忽略模式是**/packages/**
一样,除了Git可以更容易地检测到它不必查看packages
子目录。 Git最近发生了变化,使**/dirname
和**/dirname/*
行为之间的微妙区别不那么重要,但是在.gitignore
中仍然出现了那些学习老派方式的人所写的遗产。 / p>