首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何以编程方式确定是否有未提交的更改?

如何以编程方式确定是否有未提交的更改?
EN

Stack Overflow用户
提问于 2010-10-07 12:16:14
回答 6查看 112.9K关注 0票数 286

在Makefile中,如果有未提交的更改(在工作树或索引中),我希望执行某些操作。要做到这一点,最干净、最有效的方法是什么?如果命令在退出时返回值为零,而在另一种情况下返回值为非零,则符合我的目的。

我可以运行git status并通过grep管道输出,但我觉得一定有更好的方法。

EN

回答 6

Stack Overflow用户

发布于 2012-02-22 19:10:27

虽然其他的解决方案是非常彻底的,但如果你想要一些非常快速和肮脏的东西,可以尝试这样的方法:

[[ -z $(git status -s) ]]

它只检查状态摘要中是否有任何输出。

票数 131
EN

Stack Overflow用户

发布于 2010-10-07 13:28:59

如果有任何更改,git diff --exit-code将返回非零值;git diff --quiet也是如此,没有输出。由于您希望检查工作树和索引,因此使用

git diff --quiet && git diff --cached --quiet

git diff --quiet HEAD

其中任何一个都会告诉您是否有未提交的更改处于暂存状态。

票数 67
EN

Stack Overflow用户

发布于 2016-11-11 03:31:14

扩展@Nepthar的答案:

if [[ -z $(git status -s) ]]
then
  echo "tree is clean"
else
  echo "tree is dirty, please commit changes before running this"
  exit
fi
票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3878624

复制
相关文章

相似问题

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