如何忽略Git中目录中的文件?

如何忽略Git中目录中的文件?

.gitignore忽略目录中文件的文件的正确语法是什么?


可不可能是


config/databases.yml

cache/*

log/*

data/sql/*

lib/filter/base/*

lib/form/base/*

lib/model/map/*

lib/model/om/*

要么


/config/databases.yml

/cache/*

/log/*

/data/sql/*

/lib/filter/base/*

/lib/form/base/*

/lib/model/map/*

/lib/model/om/*


动漫人物
浏览 1317回答 3
3回答

开满天机

模式格式空行不匹配任何文件,因此它可以作为可读性的分隔符。以开头的行#作为注释。一个!否定模式的可选前缀; 之前模式排除的任何匹配文件将再次包含在内。如果否定模式匹配,则将覆盖较低优先级模式源。如果模式以斜杠结尾,则为了以下描述的目的将其删除,但它只会找到与目录的匹配项。换句话说,foo/将匹配foo它下面的目录和路径,但不匹配常规文件或符号链接foo(这与在git中一般使用pathspec的方式一致)。如果模式不包含斜杠/,git会将其视为shell glob模式,并检查相对于.gitignore文件位置的路径名的匹配(相对于工作树的顶层,如果不是来自.gitignore文件)。否则,git将模式视为适合使用的shell glob,fnmatch(3)并带有FNM_PATHNAME标志:模式中的通配符/与路径名中的a不匹配。例如,Documentation/*.html匹配Documentation/git.html但不是Documentation/ppc/ppc.html或tools/perf/Documentation/perf.html。前导斜杠与路径名的开头匹配。例如,/*.c匹配cat-file.c但不匹配mozilla-sha1/sha1.c。你可以在这里找到更多git help gitignore要么man gitignore

RISEBY

包含斜杠的路径被认为是相对于包含.gitignore文件的目录 - 通常是存储库的顶层,但您也可以将它们放在子目录中。所以,因为在你提供的所有例子中,路径都包含斜杠,两个版本是相同的。只有在路径中没有一个时,才需要设置一个前导斜杠。例如,要仅在存储库的顶级忽略foo,请使用/foo。简单地写入foo会忽略存储库中任何名为foo的内容。你的通配符也是多余的。如果要忽略整个目录,只需将其命名为:lib/model/om使用通配符的唯一原因是,如果您打算随后忽略目录中的某些内容:lib/model/om/*      # ignore everything in the directory! lib/model/om/foo   # except foo
打开App,查看更多内容
随时随地看视频慕课网APP