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

问题描述 投票:0回答:9

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

git log
只给我一长串提交,而不是实际的文件。

git git-svn commit
9个回答
43
投票

你尝试过 git ls-tree 吗?

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

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

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


24
投票

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


22
投票

如果您的分支源自

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

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

--diff-filter
的可用过滤器有:

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

12
投票

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

或者,您可以使用

git diff --name-only
显示任意两个任意提交之间不同的文件列表。


8
投票

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


2
投票
git log --name-only

这对我有用。


0
投票

如果您想知道自分支以来修改的所有不同文件,这个可能很有用:

git log --name-status 开发...分支名称 | grep -E "^[AMD]\s" | grep -E "^[AMD]\s" | 排序-u

这个变体将列出 you 修改过的子集:

git log --name-status 开发...branchname --author= | grep -E "^[AMD]\s" | grep -E "^[AMD]\s" |排序-u


-1
投票

尝试使用smartgit。它是 git 的 GUI 客户端。它有非常有用的用户界面,并且免费供非商业用途。


-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

是的,顺序确实很重要。

© www.soinside.com 2019 - 2024. All rights reserved.