gitignore结束明星行为

时间:2018-02-18 16:09:29

标签: git gitignore git-extensions

以下是默认的.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是否错误?

1 个答案:

答案 0 :(得分:1)

  

我不希望以下路径

   my/packages/build/foo
     

匹配**/packages/*

但事实并非如此。但您可以概括地忽略整个目录,**/packages/* 匹配my/packages/build。根本没有检查忽略的目录,因此结果就像你的忽略模式是**/packages/**一样,除了Git可以更容易地检测到它不必查看packages子目录。 Git最近发生了变化,使**/dirname**/dirname/*行为之间的微妙区别不那么重要,但是在.gitignore中仍然出现了那些学习老派方式的人所写的遗产。 / p>