为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Git
动漫人物 2019-08-06 13:31:54
如何忽略Git中目录中的文件?.gitignore忽略目录中文件的文件的正确语法是什么?可不可能是config/databases.ymlcache/*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/*?
查看完整描述

3 回答

?
开满天机

TA贡献1786条经验 获得超13个赞

模式格式

  • 空行不匹配任何文件,因此它可以作为可读性的分隔符。

  • 以开头的行#作为注释。

  • 一个!否定模式的可选前缀; 之前模式排除的任何匹配文件将再次包含在内。如果否定模式匹配,则将覆盖较低优先级模式源。

  • 如果模式以斜杠结尾,则为了以下描述的目的将其删除,但它只会找到与目录的匹配项。换句话说,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.htmltools/perf/Documentation/perf.html

  • 前导斜杠与路径名的开头匹配。例如,/*.c匹配cat-file.c但不匹配mozilla-sha1/sha1.c

你可以在这里找到更多

git help gitignore
要么
man gitignore


查看完整回答
反对 回复 2019-08-06
?
RISEBY

TA贡献1856条经验 获得超5个赞

包含斜杠的路径被认为是相对于包含.gitignore文件的目录 - 通常是存储库的顶层,但您也可以将它们放在子目录中。

所以,因为在你提供的所有例子中,路径都包含斜杠,两个版本是相同的。只有在路径中没有一个时,才需要设置一个前导斜杠。例如,要仅在存储库的顶级忽略foo,请使用/foo。简单地写入foo会忽略存储库中任何名为foo的内容。

你的通配符也是多余的。如果要忽略整个目录,只需将其命名为:

lib/model/om

使用通配符的唯一原因是,如果您打算随后忽略目录中的某些内容:

lib/model/om/*      # ignore everything in the directory!
lib/model/om/foo   # except foo


查看完整回答
反对 回复 2019-08-06
  • 3 回答
  • 0 关注
  • 1316 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信