Git nie usuwa (lokalnych) gałęzi zdalnego śledzenia automatycznie, jeśli gałąź została usunięta ze zdalnego repozytorium. Dodatkowo, przed wersją 2.0.1 gałęzie zdalnego śledzenia w niektórych przypadkach nie były usuwane po usunięciu pilota z konfiguracji git (zobacz odpowiedź VonC).
Aby usunąć przestarzałe gałęzie zdalnego śledzenia (gałęzie, które zostały usunięte w zdalnym repozytorium) dla jednego z twoich zdalnych repozytoriów, uruchom
git remote prune <remote>
Aby zacytować stronę podręcznika lub git remote:
suszona śliwka
Usuwa wszystkie przestarzałe gałęzie śledzenia w <nazwa>. Te przestarzałe gałęzie zostały już usunięte ze zdalnego repozytorium, do którego odwołuje się <nazwa>, ale nadal są lokalnie dostępne w "zdalnych / <nazwa>".
Z opcją --dry-run, zgłoś, które gałęzie zostaną przycięte, ale w rzeczywistości ich nie przycinaj.
Jednak z twojego pytania wygląda na to, że usunąłeś go ręcznie .git/refs/remotes/theoldremote, więc Git nie wie już o zdalnym repozytorium, do którego należały gałęzie zdalnego śledzenia. Nie tak powinieneś to robić.
Normalnym sposobem usunięcia zdalnego repozytorium jest uruchomienie
git remote rm <remote>
Spowoduje to usunięcie pilota z twojego .git/configi usunie gałęzie zdalnego śledzenia.
Jeśli po prostu usuniesz katalog poniżej .git/refs/remotes/, gałęzie pozostaną. Następnie będziesz musiał usunąć je ręcznie:
git branch -rd <remote>/<branchname>
Potrzebujesz opcji, -raby usunąć zdalną gałąź.
git remote rmteraz (git 2.0.1, czerwiec 2014) usuń najpierw gałęzie zdalnego śledzenia. Powinno to pomóc w uniknięciu sprzątania starych gałęzi. Zobacz moją odpowiedź poniżej