我如何列出我提交到特定分支的所有文件?我已经向一个分支提交了大约40个文件,我需要找到文件名,因为我正在尝试调试一些东西,如果我不记得文件名就很难做。
git log
只给我一个长长的提交列表,但没有实际的文件。
你尝试过使用git ls-tree吗?
git ls-tree --name-only -r <branch_name>
--name-only选项只会返回文件名。 -r选项会递归进入子目录。
如果你想在递归进入子目录之前列出子目录的名称,请将-t选项添加到参数列表中。
git log --name-only
对我有用。
master
衍生出来的,你可以使用这个命令列出在分支后添加的所有新文件:git diff master...new-branch --name-status --diff-filter=A
--diff-filter
可用的过滤器有:
Added (A), Copied (C), Deleted (D), Modified (M), Renamed (R)
git diff upstream/master...my-branch --name-status
- undefinedgit ls-files
命令列出当前分支上最新提交中存在的所有文件。
或者,您可以使用 git diff --name-only
显示任意两个提交之间不同的文件列表。
git log --name-status
命令会列出每个提交中变更文件的名称和状态。
git log --name-only 对我很有用。
如果您想知道自从分支以来所有不同的修改文件,这个命令可能会有用:
git log --name-status develop...branchname | grep -E "^[AMD]\s" | sort -u
而这个变体将列出您修改的子集:
git log --name-status develop...branchname --author= | grep -E "^[AMD]\s" | sort -u
尝试使用smartgit。它是Git的GUI客户端。它具有非常有用的用户界面,并且对非商业用途免费。
ctrl+L
查看存储库、文件夹或文件的日志。在日志窗口中选择两个提交,以查看它们之间的差异,包括文件列表和比较面板。 - kybgit 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
是的,顺序很重要。
development…base
中没有得到任何结果,但是 git diff base..development --name-status --diff-filter=A
列出了我的开发分支中的四个新文件。 - cbowns
git log --name-only
可以查看在该分支中提交所修改的文件,这似乎是一个合适的答案。 - Eugenegit ls-tree --name-only $branch $directory/
可以列出特定目录下的文件列表。 - Hashbrown