git branch
zeigen vor und hinter
master 03ea915f82 [behind 16] test
Ich denke es bedeutet master
ist hinter 16 von remote/origin/master
?
Es ist nicht möglich, davon allein zu erzählen. Die Anzahl (n) ist/sind für das, was als stromaufwärts für Zweig-Master festgelegt ist. Mit -vv
, wird der Name des vorgeschalteten enthalten:
$ git branch -vv
* master e0688e9b2 [origin/master: behind 479] git svn: fix
stash-exp 8dbdf339c [origin/master: ahead 1, behind 1142] st
Beachten Sie, dass beide hier Zweige origin/master
als ihre stromaufwärts, aber stash-exp
ist mehr hinter als master
ist (und stash-exp
auch voraus 1).
Ist es möglich, zwischen lokalen Zweigstellen voraus und nach hinten zu zeigen?
Ja, aber Sie erhalten nur eine Upstream pro Zweig. Wenn Sie den Upstream des lokalen Zweigs A
auf den lokalen Zweig B
setzen, sehen Sie nur, wie weit A
vor oder hinter B
liegt und nicht auf origin/A
.
Sie können Ihre eigenen Zählungen berechnen. Was beide git branch
und git status
hier tun, ist zu laufen (das interne Äquivalent) git rev-list --count
:
$ git rev-list --count stash-exp..origin/master
1142
$ git rev-list --count origin/master..stash-exp
1
Dies sind die beiden Zählungen git branch -vv
gedruckt. Wir können beide auf einmal bekommen:
$ git rev-list --count --left-right stash-exp...origin/master
1 1142
Beachten Sie die drei Punkte hier, die eine symmetrische Differenz erzeugen: begeht erreichbar aus jedem Zweig Spitze, aber nicht von beiden Zweigspitzen. Der --count
Code in git rev-list
zählt die beiden separat, wenn --left-right
verwendet wird, und druckt die linke Seite (1) auf der linken und rechten Seite (1142) auf der rechten Seite.Swap linken und rechten Seite und die Zählungen swap:
$ git rev-list --count --left-right origin/master...stash-exp
1142 1
Wenn ich die Beziehung zwischen zwei lokalen Niederlassungen finden wollen, wie master
und stash-exp
, ich, die hier verwendet werden können:
$ git rev-list --count --left-right master...stash-exp
663 1
, die sagt, mir sind 663 Commits erreichbar von der Spitze master
, die nicht von der Spitze stash-exp
erreichbar sind, und 1 Commit erreichbar von der Spitze stash-exp
, die nicht von der Spitze master
erreichbar ist.
Sie sicher, dass Sie es wollen? Ich habe Anweisungen dazu gesehen, wie ich das erreichen kann, aber ich weiß, dass einfache Befehle wie "git pull" jetzt auch diese entfernte Verzweigung berücksichtigen. Mit anderen Worten, wenn du dich entwickelst und einen Git Pull auslegst, wirst du vom Master ziehen. –
'Rebase Master in Entwickeln' ... das macht für mich keinen Sinn. Normalerweise würden Sie "Entwickeln" auf "Master" umbuchen und dann das Letztere mit dem Ersteren vorspulen. –
'git merge-base master entwickeln' ... das würde dir zumindest den letzten gemeinsamen Vorfahren-Commit zeigen. Sie können dann zählen, wie viele Commits zwischen diesen und den Spitzen der "Master" - und "Entwicklungs" -Zweige liegen. Dies würde Ihnen eine Vorstellung davon geben, wie grob die Rebase sein könnte. –