Ich habe es versucht git branch -r
, aber das listet nur entfernte Zweige auf, die ich lokal verfolgt habe. Wie finde ich die Liste derer, die ich nicht habe? (Es ist mir egal, ob der Befehl alle entfernten Zweige auflistet oder nur diejenigen, die nicht verfolgt werden.)
git
branch
git-branch
remote-branch
James A. Rosen
quelle
quelle
git fetch
undgit remote update
sie holen nicht alle Filialen der Fernbedienung? Denn sonst könnte man einfach holen dann benutzengit branch -r
...git branch -r
zeigte mir nur entfernte Zweige, die ich lokal verfolgt hatte. Es funktioniert jetzt besser.Antworten:
Für die überwiegende Mehrheit [1] der Besucher hier die richtige und einfachste Antwort auf die Frage "Wie liste ich alle Remote-Zweige in Git 1.7+ auf?" ist:
Für eine kleine Minderheit [1]
git branch -r
funktioniert das nicht. Wenngit branch -r
es nicht funktioniert, versuchen Sie:Wenn
git branch -r
nicht funktioniert, dann vielleicht als Cascabel sagt „Sie die Standard - Refspec geändert haben, so dassgit fetch
undgit remote update
sie holen nicht alleremote
‚s Filialen“ .[1] Zum Zeitpunkt des Schreibens dieser Fußnote 2018 - Februar habe ich mir die Kommentare angesehen und festgestellt, dass die
git branch -r
Werke für die überwiegende Mehrheit (etwa 90% oder 125 von 140 ) funktionieren .Wenn
git branch -r
dies nicht funktioniert,git config --get remote.origin.fetch
enthält check einen Platzhalter (*
) gemäß dieser Antwortquelle
git ls-remote [url]
damit Sie es nicht zuerst klonen müssen :)git branch -r
Da dies die richtige und einfachste Antwort ist, hatte der Fragesteller einen Sonderfall, in dem er sein Verhalten geändert hat, dasgit branch -r
die meisten Benutzer, die hierher kommen, nicht ändern habengit branch -r
hat auch bei mir nicht funktioniert. Es werden nur die bereits lokal verfolgten Zweige aufgelistet. Abergit ls-remote --heads
aufgelistet alle Zweige im Remote-Repository verfügbar ...git ls-remote
(und nicht unter) aufgelisteten Zweigen abrufen möchtengit branch -r
, müssen Siegit config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
vor dem Abrufen ausführen , wie unter stackoverflow.com/a/26649770/873282 beschrieben .git fetch --all
vorher zu tun , um alle aktuellen Remote-Zweige abzurufen.remote show
Zeigt alle Zweige auf der Fernbedienung an, einschließlich derjenigen, die nicht lokal verfolgt werden, und sogar derjenigen, die noch nicht abgerufen wurden.Außerdem wird versucht, den Status der Zweige in Bezug auf Ihr lokales Repository anzuzeigen:
quelle
branch_that_is_not_tracked tracked
?branch_that_is_not_tracked
ist ein Zweig, der von keinem lokalen Git-Zweig verfolgt wird. Es wurde jedoch in das lokale Repository abgerufen (es gibt also einen Remote-Zweig). Aus irgendeinem seltsamen Grund wirdgit remote show
dieser Statustracked
aufgerufen, obwohl es keinen lokalen Zweig gibt, der die Fernbedienung verfolgt. In diesem Fall ist das Gegenteil von demtracked
heißtnew
, das heißt „nicht abgerufen“.git branch -r
schlägt vor, dass es noch einen entfernten Zweig gibt,git remote show origin
zeigt dies aberrefs/remotes/origin/my-now-dead-branch stale (use 'git remote prune' to remove)
. Viel nützlicher!quelle
git branch -r
, was laut OP nicht gut genug war.git branch -a
undgit branch -r
listen Sie alle Remote - Niederlassungen für mich, ich bin nicht sicher , ob das, was der OP sagte , ist wahr. Ich habe gerade ein Test-Repository eingerichtet und dies überprüft (hatte nur Master Tracking Origin / Master, sah aber immer noch alle Remote-Zweige mit beiden Flags).git fetch
gefolgt vongit branch -a
, was für mich erst vor kurzem zu scheitern begann. Vielleicht wurde das Git-Verhalten geändert?Mit
git branch -r
Listen werden alle Remote-Zweigegit branch -a
aufgelistet und alle Zweige auf lokaler und Remote- Ebene aufgelistet . Diese Listen sind jedoch veraltet. Führen Sie diese Liste aus, um sie auf dem neuesten Stand zu haltenDadurch wird Ihre lokale Zweigstellenliste mit allen neuen von der Fernbedienung aktualisiert und alle nicht mehr vorhandenen entfernt. Wenn Sie diesen Aktualisierungsbefehl ohne --prune ausführen, werden neue Zweige abgerufen, jedoch keine mehr auf der Fernbedienung gelöscht.
Sie können dieses Update beschleunigen, indem Sie eine Fernbedienung angeben. Andernfalls werden Updates von allen von Ihnen hinzugefügten Fernbedienungen abgerufen
quelle
Aber
git branch -ar
Sollte es tun.
quelle
-r
Gibt nur entfernte Zweige zurück.-a
Gibt sowohl lokale als auch entfernte Zweige zurück. Somitgit branch -a
undgit branch -ar
beide den gleichen Ausgang liefern.Sie können auch
git fetch
gefolgt von agit branch -r
. Ohne Abruf sehen Sie nicht die aktuellsten Zweige.quelle
git fetch --all
alle aktuellen Filialen zu habenGit Branching - Remote Branches
Git-Dokumentation .
quelle
heads/
inrefs/heads/features/my-branch
, danke!Der einfachste Weg, den ich gefunden habe:
quelle
TL; TR;
Dies ist die Lösung Ihres Problems:
oder:
quelle
Der beste Befehl zum Ausführen ist
git remote show [remote]
. Dies zeigt alle entfernten und lokalen Zweige an, die verfolgt und nicht verfolgt werden.Hier ist ein Beispiel aus einem Open Source-Projekt:
Wenn wir nur die Remote-Zweige erhalten möchten, können wir verwenden
grep
. Der Befehl, den wir verwenden möchten, wäre:Mit diesem Befehl:
Sie können auch einen Alias dafür erstellen:
Dann kannst du einfach rennen
git branches
.quelle
Mit Git Bash können Sie Folgendes verwenden:
quelle
Versuche dies...
quelle
Führen Sie einfach einen
git fetch
Befehl aus. Es werden alle Remote-Zweige in Ihr lokales Repository gezogen und anschließendgit branch -a
alle Zweige aufgelistet.quelle
Wenn es einen Remote-Zweig gibt, von dem Sie wissen, dass er aufgelistet werden sollte, der jedoch nicht aufgelistet wird, möchten Sie möglicherweise überprüfen, ob Ihr Ursprung ordnungsgemäß eingerichtet ist:
Wenn das alles gut ist, sollten Sie vielleicht ein Update ausführen:
Vorausgesetzt, das läuft erfolgreich, sollten Sie in der Lage sein, das zu tun, was die anderen Antworten sagen:
quelle
Mit diesem Befehl
Es listet alle Remote-Zweige auf, einschließlich Commit-Nachrichten und Commit-IDs, auf die von Remote-Zweigen verwiesen wird.
quelle
Ich würde ... benutzen:
Dieser Befehl zeigt Ihnen nicht nur die Liste aller Zweige an, einschließlich der entfernten Zweigstellen
/remote
, sondern gibt Ihnen auch das*
Feedback zu den Aktualisierungen und den letzten Festschreibungskommentaren.quelle
Stellen Sie sicher, dass der Remote-Ursprung, den Sie auflisten, wirklich das gewünschte Repository ist und kein älterer Klon.
quelle
Am Ende habe ich eine Mess-Shell-Pipeline erstellt, um das zu bekommen, was ich wollte. Ich habe gerade Zweige von der Ursprungsfernbedienung zusammengeführt:
quelle
Die akzeptierte Antwort funktioniert bei mir. Ich fand es jedoch nützlicher, die Commits beginnend mit den neuesten zu sortieren.
git branch -r --sort=-committerdate
quelle