windows – 如何获取git存储库中每个修订的文件清单?

我有一个在Microsoft
Windows上创建的git存储库. Microsoft Windows具有不区分大小写的文件系统.检查此存储库的人员对其文件名的大小写并不十分谨慎.这意味着相同的目录或文件有时会显示在两个不同的名称下.

我的意思是解决这个问题.但为了真正解决它,我必须得到它.

有没有一种快速简单的方法来获取每个版本的文件列表?

我需要这个,以便找出哪些修订版(如果有的话)在两个不同的名称下具有相同的文件,以便我可以决定修复此类案例的策略.这意味着我需要尽快将这些信息集中在一起,这样分析就会耗费大量的时间.

最佳答案 获得此功能的一种方法是使用ls-tree:

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

(请注意,这会查看与当前目录对应的树的部分,因此您应该从repo的顶级运行它,或者给出–full-tree选项.)

这基本上是即时的,因为Git所要做的就是以递归方式检查树;它甚至不必查看文件的内容.

我不确定你将如何使用文件名列表来检测两个不同名称下的同一文件.如果您只是想要在不区分大小写的文件系统上查找相同的文件名,那么您只需要文件名列表.

但是,如果您认为文件实际上可能具有相同的内容,则可以删除–name-only,这样您还将看到所有文件的SHA1,并且可以通过查找重复的哈希来查找相同的文件.

点赞