Angenommen, ich hatte einen Zweig mit dem Namen coolbranch
in meinem Repository.
Jetzt habe ich beschlossen, es (sowohl remote als auch lokal) zu löschen mit:
git push origin :coolbranch
git branch -D coolbranch
Großartig! Jetzt ist der Zweig wirklich gelöscht.
Aber wenn ich renne
git branch -a
Ich bekomme immer noch:
remotes/origin/coolbranch
Zu beachten ist, dass beim Klonen eines neuen Repositorys alles in Ordnung ist und git branch -a
der Zweig nicht angezeigt wird.
Ich möchte wissen, ob es eine Möglichkeit gibt, den Zweig aus der branch -a
Liste zu löschen, ohne eine neue Instanz zu klonen.
git
git-branch
Yonix
quelle
quelle
git fetch -p
(odergit pull -p
) dann werden entfernte Zweige beschnitten.Antworten:
git remote prune origin
, wie in der anderen Antwort vorgeschlagen, werden alle diese veralteten Zweige entfernt. Das ist wahrscheinlich das, was Sie in den meisten Fällen möchten, aber wenn Sie nur diesen bestimmten Remote-Tracking-Zweig entfernen möchten, sollten Sie Folgendes tun:(Das
-r
ist leicht zu vergessen ...)-r
In diesem Fall werden-d
die Remote-Tracking-Zweige aufgelistet oder gelöscht (falls verwendet ). Laut Git-Dokumentation hier: https://git-scm.com/docs/git-branchquelle
git remote prune origin
oder irgendeine Form desgit fetch --prune
Markierens hat in meinem Fall bei mir nicht funktioniert. ... abergit branch -d -r origin/feature/branch-name
hat funktioniert. Ich bin mir nicht sicher, ob es etwas damit zu tun hat, dass es sich unter demfeature
Namespace befindet (Git Flow), aber so ging es weiter, falls Googler feststellen, dass ihnen das passiert.Versuchen:
Aus der Git-Remote-Dokumentation :
Pflaume
quelle
git pull --prune
unter stackoverflow.com/a/17983126/94687 erwähnt. Und:git remote update --prune
Vergiss das Super nicht
das holt und beschneidet alle Ursprünge.
quelle
git remote prune origin
und ähnlich wiegit pull --prune
bei erwähnten stackoverflow.com/a/6127884/94687 und stackoverflow.com/a/17983126/94687 sind. Und:git remote update --prune
git branch -a
git branch -a
In unserem speziellen Fall verwenden wir Stash als unser Remote-Git-Repository. Wir haben alle vorherigen Antworten ausprobiert und nichts hat funktioniert. Am Ende mussten wir Folgendes tun:
Wenn Benutzer Änderungen vornehmen wollten, mussten sie Folgendes tun:
quelle
git branch -d branch-name
arbeitete für mich. Hinweis-D
an-d
. In der Tat, als ich es mit Großbuchstaben D versuchte-D
, erstellte es einen neuen Zweig mit dem Namen -DVerwenden:
Wo
<remote>
ist ein entfernter Quellenname wie Ursprung oder Upstream .Beispiel:
git remote prune origin
quelle
git remote prune
,git prune
,git fetch --prune
.