3

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

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

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

我知道拥有这样的副本并不是最佳做法,但这是工作的最终结果:-(

我在 Windows 上有 Msysgit 和 GitExtensions ......

4

1 回答 1

7

你可以做类似的事情

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"'

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

于 2011-04-25T21:21:15.163 回答