Mit git branch --all
werden alle remote und local Zweige angezeigt. Wann aktualisiert Git diese Liste? Beim Ziehen/Drücken? Und wie aktualisiere ich es mit git bash
?
Vielen Dank euch allen!
Zeigt alle lokalen und entfernten Zweige an, über die (lokale) git Bescheid weiß
git branch -a
So aktualisieren Sie die lokale Liste der Remotezweige:
git remote update Origin --Prune
Ich glaube, dass, wenn Sie git branch --all
aus der Bash ausführen, die die Liste der entfernten und lokalen Zweige widerspiegelt, die Sie sehen, 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 Abruf (oder Pull) gesehen hat. Es ist also möglich, dass Sie git branch --all
ausführen und nicht einen neuen Remote-Zweig anzeigen, der nach beim letzten Abrufen oder Ziehen angezeigt wurde.
Um sicherzustellen, dass Ihre lokale nd Zweigstellenliste auf dem neuesten Stand ist, können Sie git fetch
vorgit branch --all
ausführen.
Für weitere Informationen sind die "entfernten" Zweige, die erscheinen, wenn Sie git branch --all
ausführen, überhaupt nicht wirklich entfernt, sondern tatsächlich lokal. Angenommen, auf der Fernbedienung befindet sich ein Zweig namens feature
, den Sie mindestens einmal in Ihren lokalen Git gezogen haben. Sie werden Origin/feature
als Zweig sehen, wenn Sie git branch --all
ausführen. Aber dieser Zweig ist eigentlich ein lokaler Git-Zweig. Wenn Sie git fetch Origin
ausführen, wird dieser Verfolgungszweig mit allen neuen Änderungen von der Fernbedienung aktualisiert. Dies ist der Grund, warum Ihr lokaler Status möglicherweise veraltet ist, da möglicherweise neue Zweigstellen in der Ferne vorhanden sind oder Ihre Verfolgungszweige veraltet sind.
Das OP hat nicht für alle Fernbedienungen eine Bereinigung angefordert, sondern für alle Zweige der Standardfernbedienung.
Also sollte git fetch --Prune
verwendet werden.
Durch die Einstellung von git config remote.Origin.Prune true
wird --Prune
automatisch. In diesem Fall werden nur git fetch
veraltete entfernte Zweige von der lokalen Kopie entfernt. Siehe auch Automatisch mit Git Fetch oder Pull beschneiden .
Beachten Sie, dass dadurch keine lokalen Zweige bereinigt werden, die keinen Remote-Zweig mehr verfolgen. Siehe https://stackoverflow.com/a/54484443/869951 .
Verwenden Sie git fetch
, um alle zuletzt erstellten Zweige abzurufen.
Wenn Sie Eclipse verwenden und neue Zweige vom Upstream aus anzeigen möchten;
Klicken Sie in der Git-Perspektive mit der rechten Maustaste auf das Git-Repository und wählen Sie "Vom Upstream holen". Dadurch werden neue entfernte Zweige abgerufen.