首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Shell脚本中获取git diff命令的输出

如何在Shell脚本中获取git diff命令的输出
EN

Stack Overflow用户
提问于 2020-05-12 01:59:51
回答 1查看 3K关注 0票数 3

我试图在两个具有相同文件的分支中执行Git。我想得到两个文件的区别。

  • 如果有致命的错误
  • 如果有差异/不匹配
  • 如果没有差异/匹配

我尝试将命令保存在变量中以获得结果。示例:GIT_DIFF=$($GIT_DIFF RB_202005:/test.txtrb_202006:/test.txt),然后打印变量(例如: echo $GIT_DIFF),但没有返回任何内容。

EN

Stack Overflow用户

回答已采纳

发布于 2020-05-12 07:19:03

由于您只对"no diff“、"diff”、"error“的情况感兴趣,所以我将运行

代码语言:javascript
运行
复制
git diff --exit-code --quiet .....

--exit-code按照正常diff的方式设置退出代码。

--quiet会抑制输出。

如果退出代码为0,则没有差异。

如果退出代码为1,则存在差异。

如果退出代码为2或128,则会出现致命错误。

正如OP在注释中指出的那样,更新了,如果要比较的文件不存在,git-diff --exit-code将生成状态代码128。根据手册页,应该生成与标准diff相同的退出代码,即2,因此最好将任何大于1的退出代码视为标准错误。这还会发现没有找到git本身的情况(在这种情况下,shell可能会报告退出代码127)。

票数 4
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61742500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档