git config --get-regexp "branch\.$current_branch\.remote"
gibt Ihnen den Namen der Fernbedienung, die verfolgt wird
git config --get-regexp "branch\.$current_branch\.merge"
gibt Ihnen den Namen des Remote-Zweigs, der verfolgt wird.
Sie müssen $ current_branch durch den Namen Ihres aktuellen Zweigs ersetzen. Sie können das dynamisch mit bekommengit rev-parse --abbrev-ref HEAD
Das folgende Mini-Skript kombiniert diese Dinge. Stecken Sie es in eine Datei mit dem Namen git-tracking
, machen Sie es ausführbar und stellen Sie sicher, dass es sich in Ihrem Pfad befindet.
dann kannst du sagen
$ git tracking
<current_branch_name>-><remote_repo_name>/<remote_branch_name>
Beachten Sie, dass sich der Name des Remote-Zweigs von Ihrem lokalen Zweig unterscheiden kann (obwohl dies normalerweise nicht der Fall ist). Zum Beispiel:
$git tracking
xxx_xls_xslx_thing -> origin/totally_bogus
Wie Sie im Code sehen können, ist der Schlüssel dazu das Extrahieren der Daten aus der Git-Konfiguration. Ich benutze nur sed, um die fremden Daten zu löschen.
#!/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"