如何列出我提交给特定分支的所有文件?我已经向分支机构提交了大约40多个文件,我需要找到文件名,因为我正在尝试调试某些东西,当我不记得文件名时很难做到。
git log
只给了我很长的提交列表,但不是实际的文件。
答案 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
是的,顺序很重要。