我想用同一个文件在两个分支中执行Git diff。我想得到两个文件的差异。
我试着将命令保存在一个变量中以得到结果。例子:GIT_DIFF=$(git diff RB_202005:test.txt RB_202006:test.txt) GIT_DIFF=$(git diff RB_202005:test.txt RB_202006:test.txt),然后打印变量(例:echo $GIT_DIFF),但没有任何结果。
由于您只对 "无差异"、"差异"、"错误 "等情况感兴趣,我将运行
git diff --exit-code --quiet .....
--exit-code
的方式设置退出代码。diff
就可以了。
--quiet
抑制输出。
如果退出代码为0,则没有差异。
如果退出代码为1,则有差异。
如果退出代码为2或128,则出现致命错误。
已更新 正如上级在评论中指出的: git-diff --exit-code
如果要比较的文件不存在,会产生状态码128。根据手册,它产生的退出代码应该和标准的 diff
,即为2。因此,最好将大于1的退出码作为标准误差。这也将抓住以下情况 git
本身没有找到(在这种情况下,shell可能会报告退出代码127)。