Ich habe git branch -d myBranch
einen Zweig gelöscht. Wenn ich jedoch auf Master bin und versuche, einen neuen Zweig mit auszuchecken git checkout
, wird dies myBranch
weiterhin in der Registerkarte "Autocomplete" angezeigt.
Wie entferne ich den Namen myBranch
von tab-autocomplete für git checkout
?
git branch -a
noch entwedermyBranch
oder auforigin/myBranch
? Beachten Sie, dass, auch wennmyBranch
nicht vorhanden ist ,git checkout myBranch
ist immer noch eine gültige Abkürzung für ,git checkout -b myBranch origin/myBranch
wennorigin/myBranch
vorhanden.Antworten:
Ein möglicher Grund dafür ist, dass, wenn noch ein Remote-Zweig (z. B.
origin/myBranch
) vorhanden istgit checkout myBranch
, dies als Alternative zu erfolgreich sein wirdgit checkout -b myBranch origin/myBranch
. Dies ist als Annehmlichkeit für den allgemeinen Fall gedacht, dass ein Remote-Zweig zum ersten Mal ausgecheckt wird und ein lokaler Tracking-Zweig mit identischem Namen erstellt wird.Es gibt auch andere Möglichkeiten, je nachdem, was genau Sie für die Fertigstellung verwenden, aber das ist eines der ersten Dinge, die ich überprüfen würde. Wenn Sie laufen
git branch -a
und es eineorigin/myBranch
Liste gibt (oder eine für eine andere Fernbedienung alsorigin
, wenn Sie eine solche haben), dann ist das wahrscheinlich ein Schuldiger.quelle
origin/myBranch
gibt es noch. Wenn ich denmyBranch
Zweig auf Github (über die Online-Schnittstelle) gelöscht habe, kann ich dann sicher anrufengit branch -d origin/myBranch
, um diesen Remote-Zweig zu entfernen?git fetch --prune origin
. Dadurch werden alle lokalen Tracking-Zweige bereinigt, die auf der Fernbedienung nicht mehr vorhanden sind.git fetch --prune origin
damit die lokalen Verweise auf entfernte Zweigstellen in der automatischen Vervollständigung verschwinden. Könnte gut sein, das vom Kommentar zur Antwort zu verschieben. Auf jeden Fall danke für deine Antwort, die mir geholfen hat!git branch -a
führte mich auf den richtigen Weg; Mein Kollege schlug vorgit fetch --prune --all
, alle toten Zweige von allen Fernbedienungen zu entfernen, was nützlich ist, wenn Sie mit vielen Entwicklern mit vielen Gabeln arbeiten.git fetch --prune --all
Veröffentlichen Sie dies als eigene Antwort, da es sich um eine einzeilige Lösung handelt. Wenn Sie jedoch abstimmen, müssen Sie für die Antwort von @ twalberg oben stimmen.
@ twalbergs Vorschlag,
git branch -a
mich auf den richtigen Weg zu führen; Mein Kollege schlug vorgit fetch --prune --all
, alle toten Zweige von allen Fernbedienungen zu entfernen, was nützlich ist, wenn Sie mit vielen Entwicklern mit vielen Gabeln arbeiten.quelle