Как упомянуто @ Josh в комментарии к Ответу Натана МакДаниэля , это, вероятно, связано с тем, что в удаленном репозитории больше нет ветки. Это заставляет git branch -a
по-прежнему отображать ветвь под origin
(или как вы ни называли этот конкретный удаленный), но удалить ветвь в удаленном хранилище невозможно, потому что он больше не существует на удаленном. Это могло быть вызвано удалением ветви на удаленном компьютере с другого компьютера (помимо того, что git pull
и git fetch
не удаляют ссылки на удаленные ветви, которые были удалены из удаленного хранилища).
Исправление
Просто удалите все ветви удаленного отслеживания, которые уже были удалены из удаленного репозитория с помощью git remote prune
:
git remote prune REMOTENAME
Например, если имя вашего пульта - origin
(вероятно), приведенная выше команда будет выглядеть так:
git remote prune origin
Из документации, поставляемой с git
:
git remote prune [-n | --dry-run] <name>
Удаляет все устаревшие ветви удаленного отслеживания в <name>
. Эти устаревшие ветви уже удалены из удаленного репозитория, на который ссылается <name>
, но все еще доступны локально в "remotes /".
С опцией --dry-run
сообщите, какие ветви будут удалены, но на самом деле не сокращайте их.