Version control 我怎么能忽略Mercurial文件夹下的所有内容

Version control 我怎么能忽略Mercurial文件夹下的所有内容,version-control,mercurial,hgignore,Version Control,Mercurial,Hgignore,我正在寻找.hgignore文件的表达式,以忽略指定文件夹下的所有文件 我想忽略垃圾箱下面的所有文件和文件夹 实际上,任何关于表达式如何形成的建议都是非常好的没关系,我明白了 syntax: regexp bin\\* 表达式遵循标准的perl正则表达式语法。或者: syntax: glob bin/** 这两种方法还将过滤掉一个名为cab的目录,该目录可能不是您想要的。如果要筛选顶级,可以使用: ^/bin/ 对于根目录下的bin目录,可以省略^。无需指定语法,默认为regexp。忽略.

我正在寻找.hgignore文件的表达式,以忽略指定文件夹下的所有文件

我想忽略垃圾箱下面的所有文件和文件夹

实际上,任何关于表达式如何形成的建议都是非常好的

没关系,我明白了

syntax: regexp
bin\\*
表达式遵循标准的perl正则表达式语法。

或者:

syntax: glob
bin/**

这两种方法还将过滤掉一个名为
cab
的目录,该目录可能不是您想要的。如果要筛选顶级,可以使用:

^/bin/

对于根目录下的
bin
目录,可以省略^。无需指定语法,默认为regexp。

忽略.class文件

syntax: regexp
?\.class

我做了一些实验,发现Windows上的正则表达式语法适用于从当前存储库开始的路径,并将反斜杠转换为斜杠

因此,如果您的存储库位于E:\Dev中,例如,
hgstatus
将对foo/bar/file1.c等应用这些模式。锚定将应用于此路径

因此:

  • Glob应用于路径元素,并以元素部分为根
  • foo匹配名为foo的任何文件夹(或文件)(不匹配“foobar”或“barfoo”)
  • *foo*匹配名称中带有“foo”的任何文件夹或文件
  • foo/bar*匹配“foo”文件夹中以“bar”开头的所有文件

  • 正则表达式区分大小写,不固定
  • 当然,像这样的反斜杠正则表达式特殊字符。(dot)
  • /匹配Windows上的\路径分隔符。\与此分隔符不匹配
  • foo将所有文件和文件夹与内部的“foo”匹配
  • foo/仅匹配以“foo”结尾的文件夹
  • /foo/匹配路径中某个位置的文件夹“foo”
  • /foo/bar/匹配路径中某个文件夹“foo”中的文件夹“bar”
  • ^foo匹配存储库根目录中以foo开头的文件或文件夹
  • foo$匹配以foo结尾的文件
我希望这会有所帮助,我觉得这一页有点简洁。

语法:glob 垃圾箱/**

这个答案如上所示,但我还想补充一点,即*和**的处理方式不同。**是递归的,*不是


我想这要容易得多:)PhiLho,我想这也会过滤掉这个答案中名为Bin的文件,另外,这个文档帮助了我:
bin
bin/
bin/*
bin/**
-所有这些都对glob做了同样的事情,即忽略所有名为bin的目录和子目录,但不忽略任何文件名bin.txt或bin1。asterix的目的是什么?我喜欢它的清晰性,但如果你已经将全球规则内化(我是
re
类的人),那么肯定会使用“bin”,这不会忽略任何东西。插入符号只在repo根中表示内容,但前导斜杠只捕捉repo根中没有的dir。事实上,您的表达式的意思是“文件或文件夹以bin结尾,后跟0或更多反斜杠”。。。它之所以有效,是因为反斜杠被*置零,但它应用了任何包含“bin”的内容。在Windows上,hg将\by/替换为匹配之前。我使用了模式“[Dd]ebug*/”,奇怪的是,它还过滤像“debug.txt”这样的文件