检查git中的重复文件(内容)?

Phi*_*ley 3 git duplicates path-finding

在我的'project/repo'中,我有两个MS Visual Studio项目,一个用于主代码,另一个用于测试.我有一些共同的文件(在复制和粘贴意义上),我想看/检查它们是哪些.

什么是正确的Git命令(或Gui菜单点击),看看我是否在整个repo树中使用了两次相同的内容blob?如果我已经正确阅读了所有教程,git应该有一个SHA1用于相同文件内容的两个副本并且已经知道它.我希望Git有一个命令可以找到并显示这些重复的使用文件路径.

最后,当有共同的祖先blob SHA1(但不是常见位置)时,我希望能够找出版本之间的差异.[即在测试期间,一个版本会在另一个版本之前更新...]

我知道这样的副本不是最佳做法,但这是工作结束的方式:-(

我在Windows上有Msysgit和GitExtensions ...

man*_*lds 6

你可以做点什么

git ls-tree -r HEAD
Run Code Online (Sandbox Code Playgroud)

要查看blob和文件.

如果您不想手动查看哪些是相同的blob:

git ls-tree -r HEAD |
    sort -t ' ' -k 3 |
        perl -ne '$1 && / $1\t/ && print "\e[0;31m" ; / ([0-9a-f]{40})\t/; print "$_\e[0m"'
Run Code Online (Sandbox Code Playgroud)

来自:Git:在此树中查找重复的blob(文件)