git branch
将显示前后
master 03ea915f82 [behind 16] test
我认为这意味着master
落后于remote/origin/master
?
是否有可能在本地分支机构之前和之后展示?
例如,我有master
和develop
,我经常在master
更新rebase master
然后更新develop
,如果它显示的话会有帮助这样:
master 03ea915f82 test
develop 1231231231 [behind master 16] test
答案 0 :(得分:0)
git branch
将显示前后master 03ea915f82 [behind 16] test
我认为这意味着
master
落后于remote/origin/master
?
单凭这一点是不可能的。计数是针对分支主机的上游设置的。使用-vv
时,包含上游的名称:
$ git branch -vv
* master e0688e9b2 [origin/master: behind 479] git svn: fix
stash-exp 8dbdf339c [origin/master: ahead 1, behind 1142] st
请注意,这里的两个分支都有origin/master
作为其上游,但stash-exp
比master
更落后(stash-exp
也提前 1)。
是否有可能在本地分支机构之前和之后展示?
是的 - 但每个分支只有一个上游。如果将本地分支A
的上游设置为本地分支B
,则只能看到A
相对于B
的前后距离,而不是origin/A
1}}。
您可以计算自己的计数。 git branch
和git status
这里做的是运行(内部等价物)git rev-list --count
:
$ git rev-list --count stash-exp..origin/master
1142
$ git rev-list --count origin/master..stash-exp
1
这是打印的两个计数git branch -vv
。我们可以同时获得两个:
$ git rev-list --count --left-right stash-exp...origin/master
1 1142
注意这里的三个点,它们产生对称差异:提交可以从任一分支尖端到达,但不能从两个分支尖端到达。 --count
中的git rev-list
代码在使用--left-right
时单独计算两个,并在左侧打印左侧计数(1),在右侧打印右侧计数(1142) 。交换左侧和右侧以及计数交换:
$ git rev-list --count --left-right origin/master...stash-exp
1142 1
如果我希望找到两个本地分支之间的关系,例如master
和stash-exp
,我可以在这里使用它们:
$ git rev-list --count --left-right master...stash-exp
663 1
告诉我,master
的提示可以从stash-exp
的提示无法访问663个提交,而stash-exp
的提示可以访问1个提交可以从master
的小费处找到。