如何列出除markdown文件以外的所有内容?我已经尝试过,如下面的代码所示,使用--exclude标志运行ls-files,但排除的文件仍显示在输出中.
我的git版本是2.6.4(Apple Git-63)
$ git ls-files
ChromeExt/read-coffee
Node/README.md
Node/web-scraping
README.md
$ git ls-files --exclude *.md
ChromeExt/read-coffee
Node/README.md
Node/web-scraping
README.md
Run Code Online (Sandbox Code Playgroud)
gei*_*rha 18
Git有自己的扩展glob模式的方法,其中包括一种排除匹配一种模式而不是另一种模式的文件的方法.例如,以下将列出所有不以.md结尾的路径:
git ls-files -- . ':!:*.md'
Run Code Online (Sandbox Code Playgroud)
引用模式很重要,因为你希望git解析它,而不是shell.
并匹配所有以.结尾的文件.js,但结尾的文件除外.min.js:
git ls-files -- '*.js' ':!:*.min.js'
Run Code Online (Sandbox Code Playgroud)
您也可以将其与其他命令一起使用,例如git grep:
git grep -w funcname -- '*.js' ':!:*.min.js'
Run Code Online (Sandbox Code Playgroud)
这个语法在gitglossary(或git help glossaryor man gitglossary)中的pathspec下解释
手册页中没有指示-x不适用于-c.
因此增加:
从b5227d8开始,
-x/--exclude不适用于缓存文件.
除非您阅读本EXCLUDE PATTERNS节中的讨论,否则很容易错过.澄清该选项适用于未跟踪的文件并指导读者EXCLUDE PATTERNS.
该git ls-files手册页确实提到:
-x <pattern>
--exclude=<pattern>
Run Code Online (Sandbox Code Playgroud)
跳过与图案匹配的未跟踪文件
如果您Readme.md被跟踪,则排除模式将不适用.
您不需要使用--exclude参数,因为此键仅用于跳过未跟踪的文件:
$ man git-ls-files
-x <pattern>, --exclude=<pattern>
Skip untracked files matching pattern. Note that pattern is a shell wildcard pattern. See EXCLUDE PATTERNS below for more information.
Run Code Online (Sandbox Code Playgroud)
您应该只为所需文件使用掩码
在您的情况下(不包括*.md文件):
$ git ls-files
example1.txt
example2.pdf
readme.md
$ git ls-files *[^.md]
example1.txt
example2.pdf
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4868 次 |
| 最近记录: |