2010-04-14 72 views
6

是否有git findgit grep的模擬,即通過樹中的模式找到文件名的東西?我經歷了很多git文檔,但沒有發現這一點,但我很難相信它不存在的地方。有沒有'git find'?

回答

6

可以使用git ls-tree -r --name-only --full-tree <treeish>列出一個樹對象的所有文件。通過普通的grep來管理這個,找到你要找的東西。

+3

只需通過grep通過'git ls-files'和pipe來管理呢? – hasen 2010-04-15 16:54:37

+1

'git ls-files'只列出當前存在的文件。 Geoff的答案會在樹中顯示* all *文件,包括過去刪除的文件。 – splicer 2011-03-31 15:16:38

1

運行輸出很簡單:

git ls-files 'yourpattern' 
+2

幾乎可以工作;它使用的是globs而不是regexps,並且要求我說'ls-files **/filename'而不是'ls-files filename'。看起來很奇怪,git可以執行正則表達式搜索文件的內容,但不通過它們的文件名。 – 2010-04-14 15:58:20