如何找到提交给分支的文件列表?

时间:2012-01-22 21:01:26

标签: git git-svn commit

如何列出我提交给特定分支的所有文件?我已经向分支机构提交了大约40多个文件,我需要找到文件名,因为我正在尝试调试某些东西,当我不记得文件名时很难做到。

git log只给了我很长的提交列表,但不是实际的文件。

9 个答案:

答案 0 :(得分:19)

你试过git ls-tree吗?

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

- name-only只提供文件名。 -r递归到子目录。

如果要在递归之前列出子目录的名称,请将-t添加到参数列表中。

答案 1 :(得分:13)

如果您的分支派生自master,您可以使用此命令列出分支后添加的所有新文件:

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

--diff-filter的可用过滤条件为:

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

答案 2 :(得分:11)

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

答案 3 :(得分:4)

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

或者,您可以使用git diff --name-only来显示任意两次任意提交之间不同的文件列表。

答案 4 :(得分:3)

git log --name-status将在每次提交中提供已更改文件的名称和状态

答案 5 :(得分:1)

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

答案 6 :(得分:0)

尝试使用smartgit。它是git的gui客户端。它具有非常有用的用户界面,可以免费用于非商业用途。

答案 7 :(得分:0)

如果你想知道自分支以来修改过的所有不同文件,那么这个文件很有用:

  

git log --name-status develop ... branchname | grep -E&#34; ^ [AMD] \ s&#34; |   sort -u

此变体将列出修改后的子集:

  

git log --name-status develop ... branchname --author = |   grep -E&#34; ^ [AMD] \ s&#34; | sort -u

答案 8 :(得分:-2)

git diff development...crmq-2405 --name-status --diff-filter=A

将列出所有已添加到新分支中但不在邮件中的文件-在本例中为development主分支。

git diff development...crmq-2405 --name-status

此变体将显示新分支中的所有文件

通用形式:

git diff main_branch...new_branch --name-status

是的,顺序很重要。