2

假设我有一个文件夹

/project1/superlong/path/to/the/folder/I/want/to/exclude/in/my/gitignore/file/

我在几个项目中有相同的文件夹,但是每个项目在那个超长路径中都有不同的第一个文件夹。

让我告诉你我在说什么: /project1/superlong/path/to/the/folder/I/want/to/exclude/in/my/gitignore/file/ /project2/superlong/path/to/the/folder/I/want/to/exclude/in/my/gitignore/file/ /project3/superlong/path/to/the/folder/I/want/to/exclude/in/my/gitignore/file/

ETC

所以在我的 .gitignore 中,我基本上想要一个简单的行,就像这样 - 只有我知道的最后两个文件夹在整个文件夹结构中总是唯一的:

gitignore/file/

我已经在我的 .gitignore 文件中尝试过,但它不起作用。我错过了一个星号还是什么?我已经查阅了手册页,但是该手册对于超级坏的示例来说超级不直观。

更新:显然,当前版本的 GitHub for Windows 使用的是旧版本的 git,它缺乏对**. 有关更多信息,请参阅下面的评论。

4

3 回答 3

1

查看其他帖子,似乎**是一种特定于 bash 的模式。如果你总是有相同深度的文件夹,你可以使用这个:

*/*/*/*/*/*/*/*/*/*/*/*/gitignore/file/

我已经在 VS 的 git 源代码控制插件中对此进行了测试,它似乎可以工作。虽然不好看!(我基于您上面 12 级路径的示例/gitignore

本文声明.gitignore**直接支持。它提倡将.gitignore文件放入(在您的情况下)每个gitignore文件夹中,匹配file/. 也不理想,但可能比上面的模式稍微好一点。

更新:

只要您只匹配一个文件夹,这应该可以工作,无论它在文件夹结构中的什么位置:

gitignore/
于 2013-05-21T12:40:08.400 回答
0

您可以使用 :

**/gitignore/file

然后提交你的.gitignore文件。

但是这篇文章可能会对您有所帮助

于 2013-05-21T11:57:27.160 回答
0

归根结底,一切都与人有关。由于我总是倾向于采用最直观的解决方案,因此我将这个答案冠以胜利者。

/project1/superlong/path/to/the/folder/I/want/to/exclude/in/my/gitignore/file /project2/superlong/path/to/the/folder/I/want/to/exclude/in/my/gitignore/file /project3/superlong/path/to/the/folder/I/want/to/exclude/in/my/gitignore/file

如果有人提出了一个更好、更优雅的解决方案,并且适用于 Windows 版 Github,我将非常乐意更改已接受的答案。

于 2013-05-21T13:06:04.893 回答