我们刚刚开始一个项目(基于 Unity),并在 Windows 10 和 MacOS 上使用 git(我们过去使用过 SVN)。我们目前使用 Sourcetree 作为客户端,但我们愿意使用其他客户端。我们想要的一件事是,有一种很好的方法来可视化图像变化。例如,在 Sourcetree(使用 Git LFS)中,我们在查看修改后的图像时会得到以下结果:
这不是特别有用。可以设置外部差异工具,并使用 Sourcetree 中的“外部差异”链接。例如,我们可以将 TortoiseSVN 的 TortoiseIDiff 设置为外部差异工具,然后我们可以得到以下差异:
这非常好,但是现在我们不能再“外部差异”文本更改了。
另一个选择是使用 BeyondCompare,它可以使用相同的命令比较文本和图像,并显示“变化”:
这很不错,虽然它不是免费工具,但这不是问题。但是,我想知道有没有更好的方法?也许一个 git GUI 客户端可以处理开箱即用的图像比较。这似乎是一个相当有用的功能。我最接近的是 Git Tower,它会显示新的更改。例如,查看与上面相同的更改,这是对图像的未暂存更改,它将如下所示:
但是如果你正在查看历史记录中的变化,它将再次显示 git lfs 文本差异:
所有这些之上的“OLD”和“NEW”标签使其看起来有点像试图以另一种风格显示差异,但也许它与设置项目时添加到 .gitattributes 的“diff = lfs”设置混淆了(我不完全确定是 git LFS,Sourcetree 还是 Bitbucket 添加的)。
任何想法都将不胜感激。如果该工具不是免费的,它就不是什么大问题,尤其是如果它能很好地处理这个问题和所有其他常规 git 功能。
编辑: 刚发布这篇文章后,我想尝试使用 Perforce Merge(或 P4Merge)作为外部 diff 工具,这实际上效果很好。它会自动处理图像和文本更改,这是我再次查看同一图像更改时得到的结果:
这特别酷,因为 P4Merge 是免费的 :) 不过,听听其他人的做法仍然很有趣,如果有一个客户端可以开箱即用地处理可视化图像变化,并且在内部而不是使用外部工具。
答案1
编辑: 自从这篇文章之后,我遇到了一个 git 客户端,叉,它似乎可以开箱即用地处理图像更改,并且在我看来,它是最好的 git 客户端之一(我只对其中几个有丰富的经验,所以可能还有其他的),尽管它不是免费的。
好的,这就是我们所解决的问题,它有效,并且在没有其他回应的情况下,我将它作为答案发布:
首先,Mac 上的 Sourcetree 似乎只比较图像。如果您安装了 Sketch 应用程序,P4Merge 实际上似乎无法处理 .sketch 文件:
在 Windows 上,我们决定安装 P4Merge(又名 Perforce Helix Merge)作为外部 diff 工具,并在查看二进制文件更改时使用它,如上文编辑问题中所述。艺术家们都在 Mac 上工作,因此在大多数情况下,他们只需使用 Sourcetree 的二进制 diff 即可。
我仍然对其他想法或解决方案非常感兴趣,但我想在这里发布这个答案,以供其他人参考。