2016-04-20 26 views
4

如何列出除标记文件以外的所有内容?正如下面的代码所示,我已经尝试使用--exclude标志运行ls-files,但排除的文件仍显示在输出中。如何从git ls-files中排除文件?

我的Git版本是2.6.4(苹果的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 

回答

3

你并不需要使用--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. 

你应该只使用口罩查找所需的文件

你的情况(不包括* .MD文件):

$ git ls-files 
example1.txt 
example2.pdf 
readme.md 

$ git ls-files *[^.md] 
example1.txt 
example2.pdf 
+0

Partof你的答案不重复我的,但我喜欢的面具soluti上。它可以在Windows上工作,如果你添加双引号。为你的面具部分+1。 – VonC

+0

在Mac上,它在有和无引号的情况下工作。 所以用双引号会更好。 对不起,我没有在发布之前刷新页面 – Batiaev

+2

哪里可以找到有关此遮罩功能的文档? – ferhtgoldaraz

4

这是already discussed in 2010

有在-x不适手册页没有任何迹象-C。

因此,除了:

由于b5227d8-x/--exclude不适用于缓存的文件。
除非您阅读EXCLUDE PATTERNS部分的讨论,否则很容易错过。澄清该选项适用于未跟踪的文件并指示读者到EXCLUDE PATTERNS

git ls-files man page确实提到:

-x <pattern> 
--exclude=<pattern> 

跳过未跟踪文件匹配模式

如果您Readme.md被跟踪,排除模式将不适用。

+3

我同意这是混乱的,但... – VonC