2012-01-22 42 views
16

如何列出我提交給特定分支的所有文件?我已經向分支提交了大約40多個文件,並且我需要找到文件名,因爲我正在嘗試調試某些內容,當我不記得文件名時很難做到這一點。我如何找到提交給分支的文件列表?

git log只給我一個長的提交列表,但不是實際的文件。

回答

12

你試過git ls-tree嗎?

git ls-tree --name-only -r <branch_name> 

--name-only只給出文件名。 -r遞歸到子目錄中。

如果您想在遞歸之前列出子目錄的名稱,請將-t添加到參數列表中。

+0

精彩的回答。你回答的問題並不是很明顯,我確實知道git log。 – octopusgrabbus

+0

我從我的分支中獲得了大量的文件,而不是很少的文件。 'git log --name-only'看起來像是合適的答案,以查看由分支中的提交修改的文件 – Eugene

+0

@Eugene:投票表決有點苛刻,你不覺得嗎? – Carl

4

git ls-files命令列出當前分支上最新提交中存在的所有文件。

或者,您可以使用git diff --name-only顯示任意兩個任意提交之間不同的文件列表。

3

git log --name-status將給名字和被修改的文件中的每個狀態提交

+0

按名稱你的意思是分支名稱? – iCodeLikeImDrunk

+0

完美答案,briliant –

13

如果你的分支是從master衍生您可以使用此命令可以列出所有的新文件,其中分支之後補充說:

git diff master...new-branch --name-status --diff-filter=A 

--diff-filter可用過濾器有:使用smartgit

Added (A), Copied (C), Deleted (D), Modified (M), Renamed (R) 
+0

這不起作用我 – kkudi

+0

我希望能得到一些幫助,你應該提供更多的信息。你輸錯了嗎?你有錯誤嗎? –

+0

返回的文件是空的。 git log --name-status工作正常。 – kkudi

-1

嘗試。它是git的客戶端。它具有非常有用的用戶界面,並且可以免費用於非商業用途。

+0

這並沒有直接回答他的問題,但信息很有用。謝謝。 – octopusgrabbus

+0

Soooo,你如何使用smartgit來查看哪些文件已被提交?那實際上會回答這個問題。 –

10

git log --name-only爲我工作。

+0

這是似乎真正解決問題的唯一答案。謝謝! –

0

這一次可能是有用的,如果你想知道的,因爲那個分支得到了修改過的所有文件不同:

git的日誌--name狀態發展... BRANCHNAME | grep -E「^ [AMD] \」「 排序-u

而這個變種會列出他們的子集修改:

git的日誌--name狀態發展... BRANCHNAME --author = | grep -E「^ [AMD] \ s」|排序-u

1

git log --name-only爲我工作。

相關問題