Antworten:
So aktualisieren Sie die lokale Liste der Remote-Zweige:
git remote update origin --prune
Um alle lokalen und Remote-Zweige anzuzeigen, die (lokal) Git kennt
git branch -a
git remote update origin --prune
ist das, wonach ich gesucht habe thx
git remote update
, und der akzeptierten Antwort, die verwendet wird git fetch
, siehe hier
git fetch
hat meinen lokalen Cache von Remote-Zweigen nicht entfernt. Nur --prune
konnte alles aufräumen.
git config remote.origin.prune true
git remote prune origin
hat den gleichen Effekt und Sie tippen weniger.
Ich glaube, wenn Sie git branch --all
von Bash aus ausführen , spiegelt die Liste der angezeigten Remote- und lokalen Zweige wider, was Ihr lokaler Git zum Zeitpunkt der Ausführung des Befehls "weiß". Da Ihr Git in Bezug auf die lokalen Zweige in Ihrem System immer auf dem neuesten Stand ist, ist die Liste der lokalen Zweige immer korrekt.
Für entfernte Zweige muss dies jedoch nicht der Fall sein. Ihr lokaler Git kennt nur entfernte Zweige, die er beim letzten Abrufen (oder Ziehen) gesehen hat. Es ist also möglich, dass Sie git branch --all
und ausführen keinen neuen Remote-Zweig sehen, der nach dem letzten Abrufen oder Ziehen angezeigt wurde.
Um sicherzustellen, dass Ihre lokale und Remote-Zweigstellenliste auf dem neuesten Stand ist, können Sie agit fetch
vor dem Ausführen ausführen git branch --all
.
Für weitere Informationen sind die "entfernten" Zweige, die beim Ausführen angezeigt git branch --all
werden, überhaupt nicht wirklich entfernt. Sie sind tatsächlich lokal. Angenommen, auf der Fernbedienung befindet sich ein Zweig, den feature
Sie mindestens einmal in Ihr lokales Git gezogen haben. Sie werden origin/feature
beim Ausführen als Zweig angezeigt git branch --all
. Aber dieser Zweig ist eigentlich ein lokaler Git-Zweig. Wenn Sie dies tun git fetch origin
, wird dieser Tracking-Zweig mit allen neuen Änderungen von der Fernbedienung aktualisiert. Aus diesem Grund kann Ihr lokaler Status veraltet sein, da möglicherweise neue Remote-Zweige vorhanden sind oder Ihre Tracking-Zweige veraltet sein können.
git fetch
habe es getan.
git fetch
funktioniert bei mir nicht, muss hinzufügen --prune
. Übrigens bin ich kein Downvoter;)
git fetch
entfernt gelöschte Remote-Zweige nicht. Das ist wahrscheinlich der Grund, warum einige Leute herabgestimmt haben
Das OP forderte nicht die Bereinigung aller Fernbedienungen an, sondern alle Zweige der Standardfernbedienung.
Damit git fetch --prune
sollte es verwendet werden.
Einstellung git config remote.origin.prune true
macht --prune
automatisch. In diesem Fall git fetch
werden auch veraltete Remote-Zweige von der lokalen Kopie entfernt. Siehe auch Automatisches Beschneiden mit Git-Abruf oder Pull .
Beachten Sie, dass dadurch keine lokalen Zweige bereinigt werden, die einen Remote-Zweig nicht mehr verfolgen. Siehe So beschneiden Sie lokale Tracking-Zweige, die auf der Fernbedienung nicht mehr vorhanden sind .
git fetch -p
Verwenden Sie git fetch
diese Option, um alle zuletzt erstellten Zweige abzurufen.
git fetch
hat mit git 2.17.1 nichts für mich geändert. Welche Version und Optionen haben Sie verwendet?
--prune
oder git config remote.NAME.prune true
dafür, um die OP-Frage zu lösen
Wenn Sie Eclipse verwenden und neue Zweige von Upstream sehen möchten;
Klicken Sie in der Git-Perspektive mit der rechten Maustaste auf ein Git-Repository und wählen Sie dann "Von Upstream abrufen". Dies holt neue entfernte Zweige.
Wenn Sie Eclipse verwenden,
Sie sollten alle da drin sein. Rechtsklick und "Kasse".
git ls-remote
könnte hier interessant sein.