比较git中的文件名

时间:2018-03-28 12:05:04

标签: git git-diff

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

git diff --name-only

选项,但是这个显示了代码进行更改的文件。我想知道的是,哪些文件是从较新的文件夹中删除的,以及它们的名称是什么。

2 个答案:

答案 0 :(得分:0)

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

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

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

了解最近一次提交与第三次最新提交之间的差异。

这将提供文件的历史记录。

答案 1 :(得分:0)

我认为我对你的场景有些不了解,因为它听起来并不像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

代替?