2010-09-02 3 views

Antwort

20

Verwenden Sie: git branch -vv, um zu sehen, welche Zweige verfolgt werden und welche nicht.

5

Wenn Sie für einen bestimmten Zweig wissen möchten, können Sie tun:

git config --get branch.<branch>.remote 

Wenn es eine Remote-druckt, es ist etwas zu verfolgen. Wenn es nichts druckt und Fehler zurückgibt, ist es nicht.

+0

Das für das Erhalten des Repository ist schön, aber es wird nicht die Zweignamen (die unterschiedlich sein können) – Casebash

+0

@Casebash: True, aber das ist eine * sehr * seltene Situation, und wenn Sie wissen, dass Sie drin sind, können Sie eine andere Konfigurationsvariable greifen. Dies hat den Vorteil, dass es (verglichen mit der Git-Verzweigung -vv) keine Fremdausgabe hat (d. H. Es ist maschinenparabel). Es wird manchmal nützlich sein. – Cascabel

+0

Ich werde zum Vorteil anderer Leute hinzufügen, dass die Konfigurationsvariable für den Zweigname 'branch.fees.merge' – Casebash

1

Wenn Sie automatisch auf diese Informationen zugreifen müssen, sollten Sie vermeiden, die Ausgabe von branch -vv (slebetman’s answer) zu analysieren.

Git bietet eine Reihe von Befehlen auf niedrigerer Ebene mit stabilen Schnittstellen und Ausgabeformaten. Diese Befehle ("plumbing" genannt) sind die bevorzugte Schnittstelle für 'Scripting' Zwecke. Die git for-each-ref Befehl können die erforderlichen Informationen über den upstream Token liefern (erhältlich in Git 1.6.3 und höher):

% git for-each-ref --shell --format=' 

b=%(refname:short) u=%(upstream:short) 
# Make a fancy report or do something scripty with the values. 
if test -n "$u"; then 
    printf "%s merges from %s\n" "$b" "$u" 
else 
    printf "%s does not merge from anything\n" "$b" 
fi 

' refs/heads/ | sh 
master merges from origin/master 
other does not merge from anything 
pu merges from origin/pu 
5

Beachten Sie, dass mit git1.8.3 (April 22d, 2013), eine neue Art und Weise haben die zu betonen Upstream-Zweig:

git branch --vv“ gelernt, den Namen des Zweigs malen sie mit in einer anderen Farbe integriert (color.branch.upstream, die standardmäßig auf blau).

C:\prog\git\git>git branch -vv 
* master 118f60e [origin/master] Sync with maint 
        ^^^^^^^^^^^^^ 
         | 
         --- now in blue 
+0

ist, dass Teil für mich nicht gefärbt ist. Ich bin auf Mac 1.8.4. Jeder weiß warum? – dongshengcn

+0

oh, macht nichts. Ich muss die Farbe einschalten. – dongshengcn

+1

@dongshengcn ja, ich mag es 'git config color.ui immer' '' 'https://gist.github.com/VonC/972690#file-gitconfig-L25 – VonC

-1

Danke für den Hinweis Jefromi

Mit dem folgenden Befehl können Sie den Remote-Tracking-Zweig für einen bestimmten Zweig zu bekommen.

git config --get branch.<branch>.merge 

Um den Remote-Tracking-Zweig zu ändern, können Sie einfach diesen Konfigurationswert ändern.

Hinweis: Dies ist eine alternative Möglichkeit zu git branch -vv (bereits hier beantwortet)
und git branch -u (Make an existing Git branch track a remote branch?)