Git .gitignore 命令

Git .gitignore Commands

我正在阅读官方 GIT 手册。但是,我发现在我的 .gitignore 文件中有些东西没有被忽略。例如:

GIT 手册说,“您可以使用正斜杠 (/) 结束模式以指定目录。您可以使用正斜杠 (/) 开始模式以避免递归

就目前而言,我在 .gitignore 文件所在的同一目录中有一个目录。我还有一个名为 'test' 的目录。测试有几个子目录,最后一个目录有一个文本文件。完整路径为 test/matt/end/matt.txt

我在 .gitignore 文件中只有一个命令。为了测试,我将替换为它的版本:

当我使用以下内容时:

/test - 它忽略包括 matt.txt 文件在内的整个路径。当我尝试时: test/ - 它做同样的事情。

GIT 手册也说了以下内容,“只忽略当前目录中的 TODO 文件,而不是子目录 /TODO: /TODO"

有人可以给我解释一下吗?手册有错吗?


我在 Linux 上创建了一个新的 git 存储库。您将在屏幕截图中看到所有内容。

在 .gitignore 文件中,我已经尝试了两种方法 /matt 和 matt/ 看看这里的屏幕截图 .gitignore。根据 GIT 手册,它不应该这样工作。

您对 递归 在这里的含义感到困惑。在这种情况下,如果你写

/test

它不会忽略任何名为test 的子目录。如果你改为写

test/

所有名为 test 的子文件夹也将被忽略。

例子

我创建了一个包含以下文件的存储库:

new file:   .gitattributes
new file:   .gitignore
new file:   aFolder/test/New Text Document.txt
new file:   test/New Text Document.txt

如果将 /test 添加到我的 .git 忽略文件:

new file:   .gitattributes
new file:   .gitignore
new file:   aFolder/test/New Text Document.txt

注意 git 不会递归 test 目录。它只忽略名为 test 的顶级目录。相反,如果我添加 test/:

new file:   .gitattributes
new file:   .gitignore

现在,它会忽略 test 目录中包含的任何文件,无论该目录的深度如何。