比较git中的文件名



我必须仅按文件名比较两个不同文件夹中的所有文件。到目前为止,我刚刚找到了:

git diff --name-only

选项,但是这向我展示了有关代码的更改的文件。我想知道的是,哪些文件是从较新文件夹中删除的,它们的名称是什么。

我认为关于您的方案我不了解一些东西,因为这听起来不像Git是此任务最直接的工具。[1]也就是说,如果您有一个git diff命令显示了更改文件的列表,则可以添加--diff-filter选项以限制您看到的更改的类型。

git diff --diff-filter=AD --name-only ...

您可能还需要使用--no-renames选项作为此类案例,因此您只需获取出现或消失而无需git而尝试猜测的文件名列表。

您注意到,--name-only选项并不意味着diff仅比较名称;这仅意味着git只会显示名称。您还可以使用--name-status而不是--name-only,然后告诉您对每条路径的哪种类型的更改(因此您可以查找AD更改(。


[1]:我的意思是,听起来您是在说您在一个时间点有两个不同的文件夹,并且想比较它们。尽管Git擅长显示随着时间的推移更改为目录树,但 并不是真正的通用差异工具。

怎么了
ls dir1 > filelist-1.txt
ls dir2 > filelist-2.txt
diff filelist-1.txt filelist-2.txt

而是?

我希望您正在寻找两个提交之间更改的文件列表:

使用--name-status,它与--name-only加上更改文件的状态相同:

git diff --name-status HEAD~5 HEAD~3

查看FIRTH最新提交与第三个最新提交之间的差异。

这将提供文件的历史。

最新更新