我正在尝试忽略Web项目的bin文件夹,但包含该bin文件夹中的.refresh文件.
这是我在.gitignore中的内容:
[Bb]in/
#Allow .refresh files for web sites
![Bb]in/*.refresh
Run Code Online (Sandbox Code Playgroud)
但这不起作用.我究竟做错了什么?我也尝试过:
!*.refresh
Run Code Online (Sandbox Code Playgroud)
结果相同.
更新:
这是文件结构,如果这有助于诊断:
\rootfolder
.gitignore
\project1
\bin
file1.dll
file1.dll.refresh
Run Code Online (Sandbox Code Playgroud)
您可以看到我们的gitignore文件所在的位置.我们不想要.dll,但我们确实需要.refresh文件.
小智 10
这种方式对我不起作用:
[Bb]in/*
![Bb]in/*.refresh
Run Code Online (Sandbox Code Playgroud)
我在.gitignore文件上使用了语法,并且工作正常.
试试吧:
**/[Bb]in/*
!**/[Bb]in/*.refresh
Run Code Online (Sandbox Code Playgroud)
尝试以下操作:
[Bb]in/*
![Bb]in/*.refresh
Run Code Online (Sandbox Code Playgroud)
这是因为当你只是做bin或bin /它根本不会进入文件夹来查找文件.你必须明确地说,去文件夹,但忽略一切,然后说不要忽略*.refresh.
编辑OP的结构:
然后你必须要么
1)在.gitignore的路径中包含project1:
project1/bin/*
project1/bin/*.refresh
Run Code Online (Sandbox Code Playgroud)
要么
2)在project1中添加一个.gitignore(我推荐这个)与之前的内容.
我知道这是一篇旧帖子,但我仍然遇到这个问题,并且使用 MsysGit 1.8.0,我无法使用@manojlds 接受的答案。
似乎排除任何深度的所有 bin 文件夹的唯一模式是[Bb]in和[Bb]in/。根据gitignore 手册页,带有斜杠的那个是最正确的,因为它只会匹配目录,而不匹配名为“bin”的文件。根据手册页,一旦我尝试向模式添加其他级别,例如[Bb]in/*,这将停止在任何深度匹配并变得相对于 .gitignore 文件的位置。
现在,假设[Bb]in/我的全局 .gitignore 文件中有一个条目,我发现在特定 bin 文件夹中取消忽略特定文件模式(如 .refresh 文件)的最佳方法是在 bin 上方的一个目录中创建另一个 .gitignore 文件文件夹(即项目的目录),并在其中放置以下条目:
![Bb]in/
[Bb]in/*
![Bb]in/*.refresh
Run Code Online (Sandbox Code Playgroud)
我们的网站项目 bin 文件夹从不包含 Debug 或 Release 之类的子文件夹,但我进行了测试,这仍然会根据需要忽略 bin 文件夹中的子文件夹。
如果我只使用第二个和第三个条目,就像接受的答案所建议的那样,它不起作用。一个直观的解释是,第一个条目从全局 glob 中删除了这个特定的 bin 文件夹,因此将包含其内容,然后第二个条目按需要工作,因为在这种情况下它是相对于 .gitignore 文件的,第三个条目删除来自第二个条目创建的 glob 的所需模式。
| 归档时间: |
|
| 查看次数: |
5187 次 |
| 最近记录: |