我想知道是否有可能做出类似的事情:
git diff --repository ssh://git@server/repository.git TAG1 TAG2
我知道你想问: "为什么不简单地克隆回购然后制作典型的差异?"
好吧,我想创建一个脚本,尽可能快地遍历几十个存储库,以找到我感兴趣的更改。这个脚本将被很多人使用,所以我真的想避免放慢速度下载每个存储库。
所以,我的最后一个问题是:有什么可以做这样的差异吗?
答案 0 :(得分:3)
我不认为可以做到。
Git不存储提交之间的差异(您相信很多解释),但实际上存储了对象的不同版本。 (它确实将这些不同版本压缩在一起,产生类似于差异的东西)。
为了向您展示典型的git diff
输出,git实际上按需比较对象,并计算差异。
如果没有检查(至少部分地)存储库以便比较对象,我就不知道如何做到这一点。或者让服务器通过在服务器端计算diff来进行合作(如GitHub / BitBucket特定选项的注释中所示)。
如果您想最大限度地减少要传输的数据量,可以查看shallow clones。