首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GitIgnore -忽略bin/但包括bin/*.刷新

GitIgnore -忽略bin/但包括bin/*.刷新
EN

Stack Overflow用户
提问于 2011-11-17 23:57:29
回答 6查看 7.7K关注 0票数 17

我试图忽略web项目的bin文件夹,但是包含在这个bin文件夹中的.refresh文件。

下面是我在我的.gitignore中拥有的内容:

代码语言:javascript
复制
[Bb]in/
#Allow .refresh files for web sites
![Bb]in/*.refresh

但这不管用。我做错了什么?我也试过:

代码语言:javascript
复制
!*.refresh

结果是一样的。

更新:

如果这有助于诊断这一点,下面是文件结构:

代码语言:javascript
复制
\rootfolder
    .gitignore
    \project1
         \bin
              file1.dll
              file1.dll.refresh

您可以看到gitignore文件的位置。我们不需要.dll,但是我们需要.refresh文件。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-11-18 00:08:04

试着做以下工作:

代码语言:javascript
复制
[Bb]in/*
![Bb]in/*.refresh

这是因为当您只执行bin或bin/时,它根本不会下降到文件夹中查找文件。您必须明确地说,转到文件夹,但忽略一切,然后说不要忽略*.refresh。

编辑OP的结构:

那你就得

1) 在.gitignore的路径中包括project1

代码语言:javascript
复制
project1/bin/*
project1/bin/*.refresh

2) 在project1中添加一个.gitignore (我建议这样做),并包含前面的内容。

票数 9
EN

Stack Overflow用户

发布于 2015-08-12 15:09:44

这条路对我没有用:

代码语言:javascript
复制
[Bb]in/*
![Bb]in/*.refresh

我在.gitignore文件上使用了下面的语法,并且工作得很好。

试一试:

代码语言:javascript
复制
**/[Bb]in/*
!**/[Bb]in/*.refresh
票数 14
EN

Stack Overflow用户

发布于 2013-04-23 22:28:38

我知道这是一个旧的帖子,但我仍然有这个问题,使用MsysGit 1.8.0,我无法使用@manojlds接受的答案。

似乎唯一在任何深度排除所有bin文件夹的模式是[Bb]in[Bb]in/。根据gitignore手册页,使用尾斜杠的那个最正确,因为它只匹配目录,而不匹配名为"bin“的文件。当我试图向模式添加额外的级别(如[Bb]in/* )时,它就不再在任何深度上匹配,而变成相对于.gitignore文件的位置,如手册页所示。

现在,假设我的全局[Bb]in/文件中有一个.gitignore条目,我发现在特定的bin文件夹中创建一个特定模式的文件(如.refresh文件)的最佳方法是在bin文件夹(即项目的目录)之上创建另一个.gitignore文件,并在其中放置以下条目:

代码语言:javascript
复制
![Bb]in/
[Bb]in/*
![Bb]in/*.refresh

我们的网站项目bin文件夹从来不包含像调试或发行版这样的子文件夹,但是我进行了测试,这仍然忽略了bin文件夹中的子文件夹,这是需要的。

如果我只使用第二个和第三个条目,就像被接受的答案所暗示的那样,它不起作用。直观的解释是,第一个条目从全局glob中移除这个特定的bin文件夹,因此它的内容将被包括在内,然后第二个条目按需要工作,因为它相对于本例中的.gitignore文件工作,而第三个条目从第二个条目创建的glob中删除所需的模式。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8176102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档