2017-04-14 146 views
0

git branch会显示我们之前和之后git分支前后地方分支?

master 03ea915f82 [behind 16] test 

我认为,这意味着master背后的remote/origin/master 16?

是否可以显示我们之前和之后的本地分支之间?

例如,我有masterdevelop,我经常更新master然后在developrebase master,它会帮助,如果它显示是这样的:

master 03ea915f82 test 
    develop 1231231231 [behind master 16] test 
+0

你确定你想要它吗?我已经看到了关于如何完成这个的说明,但是知道'git pull'等简单的命令现在也会考虑这个远程分支。换句话说,如果你正在开发并发布git pull,那么你将会从主服务器中拉出来。 –

+0

'发展中的大师'......这对我来说毫无意义。通常情况下,您会在'master'上重新开发'develop',然后将前者与前者快速前进。 –

+0

'git merge-base master develop' ...这至少会向你展示最近的共同祖先提交。然后你可以计算在这个和'master'和'develop'分支的提示之间有多少提交。这会给你一个关于rebase可能有多粗糙的想法。 –

回答

0

git branch会显示我们之前和之后

master 03ea915f82 [behind 16] test 

我认为这意味着master落后于16的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

你可以计算自己计数。什么都git branchgit 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,并打印在左侧和右侧的右侧计数(1142)的左手侧计数(1)。交换左,右两侧和计数交换:

$ git rev-list --count --left-right origin/master...stash-exp 
1142 1 

如果我想找到两个地方分支机构之间的关系,如masterstash-exp,我在这里可以使用这些:

$ git rev-list --count --left-right master...stash-exp 
663  1 

告诉我从master的提示可以获得663次提交,从stash-exp的提示无法访问,并且从stash-exp的提示可以达到1提交,这是从master的提示无法访问的。