2016-04-20 55 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