Verwenden git branch --all
zeigt alle entfernten und lokalen Zweige. Wann aktualisiert Git diese Liste?
Beim Ziehen / Schieben? Und wie aktualisiere ich es mit Git Bash ?
git
github
branch
remote-branch
BendEg
quelle
quelle
git ls-remote
könnte hier interessant sein.Antworten:
So aktualisieren Sie die lokale Liste der Remote-Zweige:
Um alle lokalen und Remote-Zweige anzuzeigen, die (lokal) Git kennt
quelle
git remote update origin --prune
ist das, wonach ich gesucht habe thxgit remote update
, und der akzeptierten Antwort, die verwendet wirdgit fetch
, siehe hiergit 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 a
git fetch
vor dem Ausführen ausführengit 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, denfeature
Sie mindestens einmal in Ihr lokales Git gezogen haben. Sie werdenorigin/feature
beim Ausführen als Zweig angezeigtgit branch --all
. Aber dieser Zweig ist eigentlich ein lokaler Git-Zweig. Wenn Sie dies tungit 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.quelle
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 habenDas 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 Fallgit 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 .
quelle
git fetch -p
Verwenden Sie
git fetch
diese Option, um alle zuletzt erstellten Zweige abzurufen.quelle
git fetch
hat mit git 2.17.1 nichts für mich geändert. Welche Version und Optionen haben Sie verwendet?--prune
odergit config remote.NAME.prune true
dafür, um die OP-Frage zu lösenWenn 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.
quelle
Wenn Sie Eclipse verwenden,
Sie sollten alle da drin sein. Rechtsklick und "Kasse".
quelle