git忽略特定目录的例外

3
我有一个类似这样的源代码结构:
  • Project A
    • bin
    • src
    • ...
  • Prjoject B
    • bin
    • src
    • ...
  • ...
我需要忽略除了src文件夹内容以外的所有内容。还有很多其他项目,我不想将它们全部放到.gitignore文件中。有时我需要将另一个项目添加到这个结构中,所以每次添加项目时,我都需要将其添加到gitignore中...
到目前为止,我一直在使用*在.gitignore文件中,并手动添加要索引的文件,使用"git add -f"命令,但这种方法非常缓慢,有时我可能会错过某些文件。同时,在git status中看不到新文件也非常不舒服。
是否可以像这样使用?
*
! */src/*

我尝试了几种变化,但没有成功。我也试过使用**。
附言:我目前正在使用 git 1.7.1。

澄清一下,使用您建议的方法似乎确实可以忽略除“src”以外的目录内容。然而,在使用“git status”时,它似乎并不能使“src”中的新未跟踪文件实际显示为未跟踪文件。 - Greg Hewgill
但是,如果它不使用git status显示未跟踪的文件,这是否意味着它仍在忽略src的内容? - Klinki
看起来是这样。我只是想澄清你所说的“它没有工作”的意思,通过提供一个具体的未按预期运行的事物。 - Greg Hewgill
1个回答

0
你可以尝试将这个添加到你的gitignore文件中:[Bb]in/,这样就会忽略所有的bin文件夹。
而且你也可以对其他文件夹做同样的操作。

我想避免这种情况。有些项目中还有其他文件夹和文件,将它们全部添加到gitignore中需要比手动添加要索引的文件更多的时间。我想特别忽略除“src”目录内容以外的所有内容。 - Klinki
你可以只添加想要忽略的文件夹,而不是全部。[Bb]in只会忽略名为Bin的文件夹,而不是所有文件夹。 - Andra Ciorici

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