Lokal verfolgende Zweigstellen
Wenn Sie über lokale Zweigstellen sprechen (z. B. main
, dev
), die so konfiguriert sind, dass push
-an und pull
-von einem vorgelagerten [Remote-Zweig], dann können Sie dies mit deaktivieren:
git branch --unset-upstream <LOCALBRANCH>
Z.B.:
git branch --unset-upstream dev
git branch --unset-upstream feature-x
Zweigstellen mit Fernverfolgung
Wenn Sie über Zweige mit dem Namen <REMOTE>/<BRANCH>
(z.B.. origin/main
, origin/dev
), die in Ihrem git log
(und .git/refs/remotes/<REMOTE>/
Verzeichnis), das Ihnen den Status eines entfernten Zweigs anzeigt, können Sie die "Verfolgung" (Aktualisierung) dieses Zweigs beenden, indem Sie die aktuelle Liste der entfernten Zweige mit Ihrer eigenen Liste überschreiben:
git remote set-branches <REMOTE> [<REMOTE-BRANCH> …]
Wenn Sie darüber hinaus diese Remote-Tracking-Zweige nicht mehr in Ihrem git log
(und .git/refs/remotes/<REMOTE>/
Verzeichnis), dann können Sie sie mit entfernen:
git branch --delete --remotes -- <REMOTE>/<BRANCH>
Deleted remote-tracking branch <REMOTE>/<BRANCH> (was 1f1a655).
Z.B.:
# keep tracking `origin/main`, and `origin/dev`,
# untrack all other `origin/*` remote branches
git remote set-branches origin main dev
# delete remote branches previously tracked, from the
# `.git/refs/remotes/<REMOTE>/` directory
git branch --delete --remotes -- origin/feature-x origin/feature-y
git branch --delete --remotes -- origin/hotfix-z
Veraltete Remote-Zweige
Und schließlich, wenn es entfernte Zweige gibt, die aus dem entfernten Repository selbst entfernt wurden (veraltet sind), und Sie Ihr lokales Repository aktualisieren möchten, um dies widerzuspiegeln, dann können Sie sie löschen (beschneiden):
# automatically
git remote prune <REMOTE>
Pruning <REMOTE>
URL: <REMOTEURL>
* [pruned] <REMOTE>/<BRANCH>
...oder
# manually
git branch --delete --remotes -- <REMOTE>/<BRANCH>
Deleted remote-tracking branch <REMOTE>/<BRANCH> (was 1f1a655).
PS
Sie können den Status der Verfolgung mit überprüfen:
git remote show <REMOTE>
Z.B.:
git remote show origin
* remote origin
Fetch URL: /Users/johndoe/bare-remote
Push URL: /Users/johndoe/bare-remote
HEAD branch: ant
Remote branches:
brooms tracked
bull tracked
cat tracked
deer tracked
dog tracked
foxy tracked
john tracked
master tracked
new tracked
tim tracked
timothy tracked
Local branches configured for 'git pull':
ant merges with remote ant
master merges with remote master
Local refs configured for 'git push':
ant pushes to ant (up to date)
master pushes to master (up to date)
-
git-remote(1):
set-branches
: Ändert die Liste der Zweige, die von dem benannten Fernzugriff verfolgt werden. Dies kann verwendet werden, um eine Teilmenge der verfügbaren Remote-Zweige nach der anfänglichen Einrichtung für eine Remote zu verfolgen.
prune
: Löscht veraltete Referenzen, die mit . Standardmäßig werden veraltete Remote-Tracking-Zweige unter gelöscht, aber je nach globaler Konfiguration und der Konfiguration des Remote-Zweigs können auch lokale Tags gelöscht werden, die nicht dorthin übertragen wurden.
show
: Zeigt einige Informationen über die Fernbedienung an.
-
git-branch(1):
--unset-upstream
: Entfernen Sie die vorgelagerten Informationen für .
--delete
: Löschen Sie einen Zweig.
--remotes
: Auflisten oder Löschen (bei Verwendung mit -d) der Remote-Tracking-Zweige.