Git fetch origin --prune не удаляет локальные ветки?

В какой-то момент я подумал, что git fetch origin --prune удалены локальные ветки, которые больше не присутствуют на сервере. Как-то это не мой опыт на данный момент.

Я выполнил эту команду, и локальная ветвь не была удалена. В настоящее время он не проверен. Я проверил git branch -vv, чтобы проверить эту информацию, и я вижу

feature/MyGreatFeature           f30efc7 [origin/feature/MyGreatFeature: gone]

Итак, похоже, что он ушел. Почему бы не удалить мою локальную ветвь?

Запуск git version 2.7.4 (Apple Git-66)

Ответы

Ответ 1

Различные параметры черновиков (git remote update --prune, git remote prune, git fetch --prune) удаляют только удаленные ветки отслеживания. 1

Вам нужно будет вручную удалить локальные ветки, которые вам больше не нужны, или изменить или удалить их восходящий параметр, если ветвь удаленного отслеживания больше не существует. Обратите внимание, что каждая локальная ветвь может записывать удаленный и/или ветвь, которые не существуют или даже никогда не существовали. В этом случае Git в основном действует так, как если бы у этих локальных ветвей не было восходящего набора, за исключением того, что начиная с версии 1.8.5 несколько команд сообщают о восходящем потоке как "ушли" или иным образом недействительны и могут предложить использовать --unset-upstream.


1 Точнее, они удаляют ссылки ref ref после выполнения сопоставления refspec из командной строки или строки fetch из конфигурации. Следовательно, для зеркал выборки они могут удалять локальные ветки. Большинство клонов не настроены в качестве зеркал выборки, однако.

Были обнаружены некоторые исправления ошибок для сложных сопоставлений, чтобы убедиться, что Git не сократил отображаемую ветвь в некоторых случаях, когда это не должно. Для любого обычного репозитория - обычного клона или чистого зеркала выборки - эти исправления не влияют; они имеют значение только в том случае, если у вас сложная конфигурация fetch.

Ответ 2

Желаемая команда

$ git remote prune origin

Этот вопрос почти дословно говорит о том, что вы ищете.