【发布时间】:2011-02-27 11:49:59
【问题描述】:
我想提取在git status 之后打印的信息,如下所示:
# On branch master
# Your branch is ahead of 'origin/master' by 2 commits.
我当然可以解析git status 的输出,但不建议这样做,因为这个人类可读的输出可能会发生变化。
有两个问题:
- 如何知道远程被跟踪的分支?通常是
origin/branch,但不一定是。 - 如何获取数字?如何知道它是否领先/落后?通过多少次提交?那么分歧分支案例呢?
【问题讨论】:
-
对于 Git 1.9/2.0,另见stackoverflow.com/a/20499690/6309
-
使用 Git 2.5+,实际命令是:
git for-each-ref --format="%(push:track)" refs/heads。见my answer below。 -
如果您不一定要与跟踪分支进行比较,但是任何两个分支,我相信这个答案是最好的:stackoverflow.com/questions/20433867/…(适用于 git 1.9)
-
至于您问题的第 2 点:
How to get the numbers? How to know whether it is ahead/behind? By how many commits? And what about the diverged branch case?这个答案对我来说非常有用:stackoverflow.com/a/27940027/4209853
标签: git git-status