Qwertiy Asked:2020-07-01 04:32:52 +0800 CST2020-07-01 04:32:52 +0800 CST 2020-07-01 04:32:52 +0800 CST 文件夹中存在的文件列表 772 我想获取文件夹中曾经存在的所有文件的名称。 适合作为存储库的整个存在以及两次提交之间的选项。但是如果文件是在检查点之间添加然后删除的(即不包含在差异中),那么它也必须在列表中。 因此不适合 git diff --name-only 1111111111111111111111111111111111111111 -- . git 2 个回答 Voted Best Answer Alexey Ten 2020-07-01T15:10:50+08:002020-07-01T15:10:50+08:00 自开始以来文件夹中所有文件的列表: git log --no-renames --name-only --format='' . | sort -u 对于自提交以来更改文件的列表123abc: git log --no-renames --name-only --format='' 123abc..HEAD . | sort -u 但是您需要了解此列表将仅包含在此期间以某种方式发生更改的文件,即 如果需要所有文件,则该列表必须与文件夹中的当前文件列表相结合。 Qwertiy 2020-07-03T18:56:54+08:002020-07-03T18:56:54+08:00 要获取删除文件的提交列表,log请使用--diff-filter=D. 要查看已删除文件的名称,请添加--summary. 有一个警告:有时名称会用引号引起来。就我而言,这是\路径中除了正常路径之外的某种地方/——也许是提交期间的某种错误,我不知道。 要使提交消息单行,您可以使用--pretty=oneline,但您可以通过编写完全删除这些消息的输出--format=(可能在 Linux 的情况下--format='')。 这将为您提供删除已提交到存储库的所有文件的列表(据我所知,如果文件被删除,然后添加,然后再次删除,则名称可以重复): git log --format= --diff-filter=D --summary -- . 从命令的输出中获取已删除但仍提交的文件列表 git status --porcelain -- . 选择以 . 开头的行 D。 好吧,现在要获取文件夹中存在的文件,不需要 git。
自开始以来文件夹中所有文件的列表:
对于自提交以来更改文件的列表
123abc
:但是您需要了解此列表将仅包含在此期间以某种方式发生更改的文件,即 如果需要所有文件,则该列表必须与文件夹中的当前文件列表相结合。
要获取删除文件的提交列表,
log
请使用--diff-filter=D
.要查看已删除文件的名称,请添加
--summary
.有一个警告:有时名称会用引号引起来。就我而言,这是
\
路径中除了正常路径之外的某种地方/
——也许是提交期间的某种错误,我不知道。要使提交消息单行,您可以使用
--pretty=oneline
,但您可以通过编写完全删除这些消息的输出--format=
(可能在 Linux 的情况下--format=''
)。这将为您提供删除已提交到存储库的所有文件的列表(据我所知,如果文件被删除,然后添加,然后再次删除,则名称可以重复):
从命令的输出中获取已删除但仍提交的文件列表
选择以 . 开头的行
D
。好吧,现在要获取文件夹中存在的文件,不需要 git。