Claryfing gitignore文档

时间:2018-04-25 17:26:02

标签: git

我不理解gitignore文档中的一些陈述:https://git-scm.com/docs/gitignore

我不理解的部分显示在粗体中。我的问题是斜体。

  1.   

    如果图案以斜线结尾,将其移除以用于以下描述

  2. 删除了哪些内容?什么是“以下说明”?

    1.   

      如果模式不包含斜杠/,Git会将其视为shell glob模式,并检查相对于.gitignore文件位置的路径名匹配[..] 否则 ,Git将模式视为shell glob

    2. “否则”来自什么?它们是否与模式中的“有”和“没有”斜线形成鲜明对比?如果是这样,两种情况如何区别对待?

      1.   

        尾随“/ **”匹配内部的所有内容。

      2. 与没有星号的尾随/的结果相同吗?它看起来像我在子弹点中看到的关于尾部斜杠(“foo /将匹配目录foo及其下面的路径”)。

        您是否也发现此文档令人困惑?如果是这样,那么向Git团队发出信号的最佳方式是什么? (邮件列表或问题跟踪器?)。

2 个答案:

答案 0 :(得分:0)

  
    

如果图案以斜线结尾,则为了以下描述的目的将其删除"

  
     

删除了什么?

尾随斜线。

  

""以下描述" ?

手册页的其余部分,尤其是章节的其余部分" PATTERN FORMAT"。

  
    

如果模式不包含斜杠/,Git会将其视为shell glob模式,并检查相对于.gitignore文件位置的路径名匹配[..]否则,Git会将模式视为shell glob

  
     

"否则"从什么?

请注意"否则"开始一个新的要点,因此它不限于你引用的点。这意味着"否则"来自该部分开头的所有ifs" PATTERN FORMAT"。

  
    

尾随" / **"匹配里面的一切。

  
     

这与尾随/没有星号的结果相同吗?

我想是的。

  

您是否也发现此文档令人困惑?

完全没有,实际意义上说:我从来没有忽略过任何我不想忽视的事情,也没有忘记跟踪我想忽略的事情。

  

如果是这样,那么向Git团队发出信号的最佳方式是什么? (邮件列表或问题跟踪器?)。

他们direct users到邮件列表。

答案 1 :(得分:0)

  

如果图案以斜杠结尾,则出于以下描述的目的将其删除

     

删除了什么?什么是“以下说明”?

我猜这意味着当提到斜杠时,尾部的斜杠将被排除。我认为这实际上只会影响下一段。

  

如果该模式不包含斜杠/,则Git会将其视为Shell Glob模式,并检查相对于.gitignore文件位置的路径名是否匹配[..] 否则 ,Git将模式视为外壳球体

     

“否则”来自什么?它们是否在模式中将“斜线”与“斜线”进行对比?如果是这样,这两种情况有何不同?

因此,请牢记以上解释,第一段是这样的:

  

如果该模式不包含斜杠“ /”,而是尾随斜杠,则该模式将在所有目录中匹配。

换句话说,foo/将匹配/bar/foo/,而foo将匹配/bar/foo

“其他部分”的意思是:

  

如果模式包含斜杠“ /”,而不是尾部斜杠,则始终从根开始考虑。

换句话说,foo/bar将匹配/foo/bar,但不匹配/bar/foo/bar

  

结尾的“ / **”匹配其中的所有内容。

     

结果是否与不带星号的结尾/相同?从我在关于斜杠的结尾的项目符号点看,它看起来像(“ foo /将匹配目录foo及其下方的路径”)。

有细微的差别。 foo/将忽略该文件夹,而foo/**将忽略该文件夹及其内容。

因此,如果这是您的文件结构:

  .gitignore
  foo
    ├── bar.json
    └── foo.txt

然后下面的.gitignore文件将跟踪所有内容:

foo/
!foo/

但是

foo/**
!foo/

什么也不会追踪。因为首先忽略所有文件,然后才忽略文件夹/foo,但由于该文件夹没有可跟踪的文件,因此该文件为空,并且git不会跟踪空的文件夹。

  

您还会发现本文档令人困惑吗?如果是这样,向Git团队发出信号的最佳方法是什么? (邮件列表或问题跟踪器?)。

我总体上喜欢git文档,并且我还认为.gitignore文档非常好。只有您提到的3个段落让我感到困惑(和others)。实际上,这个周末我花了几个小时来理解它,而我有与您完全相同的问题。在确定可以结帐here之后,我创建了一个博客文章。

您可以与他们联系,请参阅https://git-scm.com/community

  

有关Git社区的问题或评论可以发送到邮件中   使用电子邮件地址git@vger.kernel.org列出。错误报告   git应该发送到该邮件列表。

该网站实际上有一个git repository,但是来自文档is imported from the git man pages的内容,因此人们必须在实际的git存储库中发出拉取请求。

我正在写邮件列表,还创建了pull-request。随时在这里发表评论。