Git:以编程方式检查是否有任何事件发生
对于我正在写的Git脚本,我希望有一个编程方法来检查是否有任何事情在进行。 即如果任何事情都是上演的,我想要一个积极的结果,如果什么都没有上演的话,我就是消极的。
奖励积分:以编程方式检查工作树中是否有新的东西可以上演。
您正在寻找:
git diff --cached --quiet
  (或者如果你仍然想要输出,用--exit-code替换--quiet ) 
  git status的短格式输出(也在helppage git status --help解释)给出了可以以编程方式使用的输出。  从git status --help helppage(在“OUTPUT”部分页面底部的某处,为我的git 2.8.1.windows.1版本): 
  在短格式中,每条路径的状态显示为 
 XY PATH1 -> PATH2 
  其中PATH1是HEAD中的路径,并且仅当PATH1对应于索引/工作树中的不同路径(即文件被重命名)时才显示“ - > PATH2”部分。  XY是一个双字母状态码。 
根据相同的理由:
  对于具有合并冲突的路径,X和Y显示合并每一侧的修改状态。  对于没有合并冲突的路径,X显示索引的状态,Y显示工作树的状态。  对于未跟踪的路径, XY是??  。  其他状态代码可以解释如下: 
  ' ' =未修改 
  M =修改 
  A =已添加 
  D =删除 
  R =重命名 
  C =复制 
  U =更新但未被合并 
  忽略的文件没有列出,除非--ignored选项有效,在这种情况下XY是!!  。 
  所有关于XY值的信息都可以在这里找到。  短格式是通过使用git status -s获得的。  所以 
git status -s | grep "^[MADRCU]"
  应该给你迄今为止已经上演的所有参赛作品。  您可以将-c标志添加到grep来计算行数,而不是打印它们。 
奖励:在工作树中尚未上演的任何新内容(仍未追踪)应该被发现:
git status -s | grep "^??"
希望这可以帮助。
祝你好运!
链接地址: http://www.djcxy.com/p/50885.html