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?

1voto

masukomi Punkte 9245

git config --get-regexp "branch\.$current_branch\.remote"

gibt Ihnen den Namen der zu verfolgenden Fernbedienung an

git config --get-regexp "branch\.$current_branch\.merge"

gibt Ihnen den Namen des entfernten Zweigs, der verfolgt wird.

Sie müssen $current_branch durch den Namen Ihres aktuellen Zweigs ersetzen. Sie können das dynamisch mit git rev-parse --abbrev-ref HEAD

Das folgende Mini-Skript kombiniert diese Dinge. Fügen Sie es in eine Datei namens git-tracking und stellen Sie sicher, dass es sich in Ihrem Pfad befindet.

dann können Sie sagen

$ git  tracking
<current_branch_name>-><remote_repo_name>/<remote_branch_name>

Beachten Sie, dass der Name der entfernten Verzweigung sich von dem der lokalen Verzweigung unterscheiden kann (obwohl das normalerweise nicht der Fall ist). Zum Beispiel:

$git tracking 
xxx_xls_xslx_thing -> origin/totally_bogus

Wie Sie im Code sehen können, liegt der Schlüssel dazu im Extrahieren der Daten aus der Git-Konfiguration. Ich verwende einfach sed, um die überflüssigen Daten zu entfernen.

#!/bin/sh

current_branch=$(git rev-parse --abbrev-ref HEAD)
remote=$(git config --get-regexp "branch\.$current_branch\.remote" | sed -e "s/^.* //")
remote_branch=$(git config --get-regexp "branch\.$current_branch\.merge" | \
  sed -e "s/^.* //" -e "s/refs\/.*\///")

echo "$current_branch -> $remote/$remote_branch"

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