gitignore无法取消特定的bin文件夹忽略

7

我有这样的目录结构(为了说明简化):

parent
--directory1
----bin
--directory2
----bin
-directory3
----bin

... and so on

我希望Git可以忽略所有的 'bin' 目录,但只排除其中一个目录(directory2/bin)。我尝试了以下方法,但好像没有用:
[Bb]in
!directory2/[Bb]in

这也不起作用

[Bb]in
!parent/directory2/[Bb]in

我也尝试过这个方法,但它不起作用:
[Bb]in
!parent/directory2/[Bb]in/*

有人知道如何让这个工作吗?

你的git仓库的根目录是哪个,是parent还是parent所在的目录? - Jasper
当前情况如何,是不是有什么被忽略了,还是忽略部分工作了但无法让异常正常工作? - Jasper
我尽力复制了这个问题,并且我成功地让你的第一次尝试(在parent目录下使用.gitignore)和第二次尝试(在根目录下使用.gitignore)都按照预期工作。恐怕问题不在于你没有展示给我们的某些东西上(虽然我真的不知道是什么)。 - Jasper
2
@Jasper,我通过在“directory2”中添加一个.gitignore文件并加上“![Bb]in”来使其工作。直到看到你的评论之前我还没有考虑过这一点。我仍然不知道为什么我不能从根目录的.gitignore跳过该目录。你可以将你的评论添加在下面作为答案吗?我想将其标记为答案。 - Johnny Oshika
有同样的问题。有什么想法是什么原因?想在根目录中取消忽略它。 - dasheddot
显示剩余2条评论
1个回答

6
我使用git根据您提供的信息创建了一个本地仓库。然而,一旦我完成了这个过程,您所描述的问题就不存在了,我也无法很容易地找到引入此问题的方法。
在“parent”文件夹中,使用以下代码的“.gitignore”进行操作:.gitignore
[Bb]in
!directory2/[Bb]in

这也适用于根目录下的.gitignore

[Bb]in
!parent/directory2/[Bb]in

看起来问题不在你提供的结构中,但我不知道它会在哪里,也不知道从哪里开始查找...


我曾经遇到过同样的问题,我在directory2中添加了.gitignore文件,并加入了[Bb]in,然后一切都开始正常工作了。但是后来我意识到我使用了错误的路径,在我的情况下,结构有点复杂,我犯了一个错误。我确信你需要从资源管理器中复制路径并与gitignore中指定的路径进行比较,并记住路径是区分大小写的。我的最终解决方案是!ParentDirectory/ExternalPackages/**/Bin/* - Nikita
好的,我的上一个评论没起作用 xD 我已经将 ![Bb]in 放在本地文件夹中并保持冷静 :) - Nikita

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接