我想在git中的不同提交中比较文件的两个版本(存在于不同路径)。我不想要差异,我只是想知道内容和模式是否相同。 diff-files的文档并不表示返回值的任何含义。我在git中看不到与cmp(1)类似的东西。是否有另一个管道工具来执行此操作,或者diff文件是否具有表达此值的返回值?
答案 0 :(得分:3)
git diff --exit-code <commit> <commit>
我相信你在寻找。
它几乎位于文档https://git-scm.com/docs/git-diff
或者
git diff --quiet <commit> <commit>
如果您纯粹对退出代码感兴趣,仅此而已(无控制台输出)
答案 1 :(得分:0)
git ls-tree <commit> -- <path>
输出
<mode> SP <type> SP <object> TAB <file>
<mode>
是文件模式。 <object>
是表示内容的sha1。
比较模式和对象。
<object>
这里可以用其他方式命名
<commit>:<path>
所以git rev-parse <commit>:<path>
可以输出blob或树的sha1。比较两个sha1,我们可以看到内容是否相同。