Git löscht die (lokalen) Remote-Tracking-Zweige nicht automatisch, wenn der Zweig im Remote-Repository gelöscht wurde. Darüber hinaus wurden in V2.0.1 Remote-Tracking-Zweige in einigen Fällen nicht gelöscht, als Sie die Remote aus Ihrer Git-Konfiguration entfernt haben (siehe VonCs Antwort).
Führen Sie Folgendes aus, um veraltete Remote-Tracking-Zweige (Zweige, die im Remote-Repository gelöscht wurden) für eines Ihrer Remote-Repositorys zu löschen
git remote prune <remote>
So zitieren Sie die Manpage oder git remote:
Pflaume
Löscht alle veralteten Verfolgungszweige unter <Name>. Diese veralteten Zweige wurden bereits aus dem Remote-Repository entfernt, auf das mit <Name> verwiesen wird, sind jedoch weiterhin lokal in "Remotes / <Name>" verfügbar.
Geben Sie mit der Option --dry-run an, welche Zweige beschnitten werden sollen, beschneiden Sie sie jedoch nicht.
Aus Ihrer Frage geht jedoch hervor, dass Sie manuell entfernt wurden .git/refs/remotes/theoldremote, sodass Git nicht mehr über das Remote-Repository Bescheid weiß, zu dem die Remote-Tracking-Zweige gehörten. So sollst du es nicht machen.
Der normale Weg, ein Remote-Repository zu entfernen, ist die Ausführung
git remote rm <remote>
Dadurch wird die Fernbedienung von Ihrem entfernt .git/configund die Fernverfolgungszweige gelöscht.
Wenn Sie nur das Verzeichnis unter löschen .git/refs/remotes/, bleiben die Zweige zurück. Dann müssen Sie sie manuell entfernen:
git branch -rd <remote>/<branchname>
Sie benötigen eine Option -rzum Löschen eines Remote-Zweigs.
git remote rmnow (git 2.0.1, Juni 2014) löscht zuerst die Remote-Tracking-Zweige. Das soll helfen, alte Äste nicht aufzuräumen. Siehe meine Antwort unten