2017-04-14 1 views
0

git branch wird zeigen, vor und hinterGit Zweig vor und hinter für die lokale Niederlassung?

master 03ea915f82 [behind 16] test 

Ich denke, es bedeutet master hinter 16 von remote/origin/master ist?

Ist es möglich, zwischen den lokalen Niederlassungen voraus und nach hinten zu zeigen?

Zum Beispiel habe ich master und develop ich oft aktualisieren master dann rebase master in develop, wäre es hilfreich, wenn es so etwas wie dies zeigt:

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

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. –

+0

'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. –

+0

'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. –

Antwort

0

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.

Verwandte Themen