使用git(GitHub for Windows)以长路径排除.gitignore中的文件夹

时间:2013-05-21 11:55:34

标签: git github-for-windows

说我有一个文件夹

/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/

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

gitignore/file/

我在我的.gitignore文件中尝试过,但它不起作用。我错过了星号或其他东西吗?我已经查阅了手册页,但是这个手册对超级棒的例子非常不直观。

更新:显然当前版本的GitHub for Windows使用的旧版本的git缺少对**的支持。有关详细信息,请参阅下面的评论。

3 个答案:

答案 0 :(得分:1)

查看other posts,似乎**是特定于bash的模式。如果你总是拥有相同深度的文件夹,你可以使用它:

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

我已经在VS的git源代码控制插件中测试了它,它似乎可行。虽然它不漂亮! (我的基础是你的/gitignore以上的12级路径的例子

This article声明.gitignore不直接支持**。它主张将.gitignore文件放入(在您的情况下)每个gitignore文件夹中,匹配file/。不理想,但可能比上面的模式略好。

更新

只要您只匹配单个文件夹,无论文件夹结构中的位置如何,这都应该有效:

gitignore/

答案 1 :(得分:0)

您可以使用:

**/gitignore/file

然后提交您的.gitignore文件。

this post可能会对您有所帮助

答案 2 :(得分: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

如果有人想出一个更好,更优雅的解决方案并且与Github for Windows一起使用,我会非常乐意改变已接受的答案。