1053 Stimmen

Wie kann ich sehen, welche Git-Zweige welchen Remote- / Upstream-Zweig verfolgen?

Ich weiß, dass ich es kann git branch --all und das zeigt mir sowohl die lokalen als auch die entfernten Zweige, aber es ist nicht sehr nützlich, um mir die Beziehungen zwischen ihnen zu zeigen.

Wie kann ich Zweige so auflisten, dass ersichtlich ist, welcher lokale Zweig welchen entfernten Zweig verfolgt?

42voto

cdunn2001 Punkte 16591

Für die aktuell Zweig, hier sind zwei gute Möglichkeiten:

% git rev-parse --abbrev-ref --symbolic-full-name @{u}
origin/mainline

o

% git for-each-ref --format='%(upstream:short)' $(git symbolic-ref -q HEAD)
origin/mainline

Diese Antwort ist auch aquí auf eine leicht abweichende Frage, die (fälschlicherweise) als Duplikat markiert wurde.

22voto

Eugene Yarmash Punkte 130008

Für den aktuellen Zweig könnte man auch sagen git checkout (ohne jede Verzweigung). Dies ist ein No-op mit dem Nebeneffekt, dass die Tracking-Informationen, falls vorhanden, für den aktuellen Zweig angezeigt werden.

$ git checkout 
Your branch is up-to-date with 'origin/master'.

8voto

MJeremy Punkte 922

Hier ist eine schöne und einfache Lösung. Kann prüfen git remote -v die Ihnen alle Ursprungs- und Upstream-Zweige des aktuellen Zweigs anzeigt.

6voto

Olivier Refalo Punkte 47916

Ich verwende diesen Alias

git config --global alias.track '!f() { ([ $# -eq 2 ] && ( echo "Setting tracking for branch " $1 " -> " $2;git branch --set-upstream $1 $2; ) || ( git for-each-ref --format="local: %(refname:short) <--sync--> remote: %(upstream:short)" refs/heads && echo --Remotes && git remote -v)); }; f'

dann

git track

4voto

albfan Punkte 11604

Basierend auf Olivier Refalo's Antwort

if [ $# -eq 2 ] 
then
    echo "Setting tracking for branch " $1 " -> " $2
    git branch --set-upstream $1 $2
else
    echo "-- Local --" 
    git for-each-ref --shell --format="[ %(upstream:short) != '' ] && echo -e '\t%(refname:short) <--> %(upstream:short)'" refs/heads | sh
    echo "-- Remote --" 
    REMOTES=$(git remote -v) 
    if [ "$REMOTES" != '' ]
    then
        echo $REMOTES
    fi  
fi

Es wird nur die lokale Version mit konfiguriertem Track angezeigt.

Schreiben Sie es in ein Skript namens git-track auf Ihrem Weg und Sie erhalten eine Trottelspur めいれいけい

Eine ausführlichere Version auf https://github.com/albfan/git-showupstream

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X