在我的'project / repo'中,我有两个MS Visual Studio项目,一个用于主代码,另一个用于测试。我有一些共同的文件(在复制和粘贴意义上),我想看/检查它们是哪些。
什么是正确的Git命令(或Gui菜单点击),看看我是否在整个repo树中使用了两次相同的内容blob?如果我已经正确阅读了所有教程,git应该有一个SHA1用于相同文件内容的两个副本并且已经知道它。我希望Git有一个查找并显示这些重复使用文件路径的命令。
最后,当有共同的祖先blob SHA1(但不是公共位置)时,我希望能够找出版本之间的差异。 [即在测试期间,一个版本会在另一个版本之前更新...]
我知道这样的副本不是最佳做法,但这是工作结束的方式: - (
我在Windows上有Msysgit和GitExtensions ...
答案 0 :(得分:5)
您可以执行类似
的操作git ls-tree -r HEAD
查看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"'