我已经看过一些关于如何忽略除某些子目录之外的所有例子的例子。
# Ignore Everything
foo/*
# Include sub directory
!foo/ccc/*
我也尝试过:
# Ignore Everything
foo/*
# Include sub directory
!foo/ccc/
更新
因此上面的代码可行,但是尝试排除另一个目录中的目录不起作用。它仅适用于父目录和子目录。
# Ignore Everything
foo/*
# Include sub directory
!foo/ccc/aaa/ddd/
在我的gitingore中包含此内容后,我运行了git add --all
,我在git status
中看不到任何文件。
所有帮助将不胜感激。
答案 0 :(得分:2)
您必须取消忽略要取消签名的路径中的每个目录。以下内容适用于您的情况:
# Ignore everything in foo
foo/*
# Except the ccc subdir
!foo/ccc
# Ignore everything in ccc subdir
foo/ccc/*
# Except the aaa subsubdir
!foo/ccc/aaa
# Ignore everything in aaa subsubdir
foo/ccc/aaa/*
# Except the ddd subsubsubdir
!foo/ccc/aaa/ddd
忽略规则在/*
中结束非常重要,因为它告诉git忽略文件夹中的所有内容,而不是文件夹本身,允许我们为特定子目录的忽略规则添加例外。