.gitignore白名单中忽略子目录

3
我正在为我的Linux家目录创建一个git仓库。我希望忽略大部分内容,只保留白名单中的文件/目录。我有以下代码:
# Ignore everything
*
# But not these files...
!.gitignore
!*/scripts/*
# the above line doesn't work, so this is a test:
!./scripts/*

但是它忽略了我添加到“scripts/”子目录中的文件。我一直在使用“-f”添加文件,这是次优的方法。
这个问题的答案Git Won't Un-Ignore a Directory对我不起作用。
Git版本为2.1.4。
1个回答

7

文档中得知:

如果一个文件的父目录被排除在外,则无法重新包含该文件。

您需要明确取消忽略目录其内容,否则否定内容的忽略规则将无法匹配任何内容。首先取消忽略scripts,然后您可以取消忽略scripts/*

这是有效的.gitignore文件:

*
!.gitignore
!scripts
!scripts/*

话虽如此,因为您未忽略*,所以您只需一个规则即可摆脱忽略路径scripts。第二个 scripts/* 是多余的。


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