Удалите удаленные ветки в Git
Я хочу удалить некоторые удаленные ветки моего репозитория проектов. Я выполнил следующую команду:
git push origin :name_of_branch
и когда я перечисляю удаленные ветки с помощью
git branch -r
ветвь, которую я удалил, не появляется, но партнер моей версии
git fetch
и позже
git branch -r
и в списке ветвь name_of_branch
, которую я удалил, все еще находится в списке. Однако, когда он пытается удалить ветвь с помощью
git push origin :name_of_branch
Он получает следующее сообщение:
error: unable to delete 'name_of_branch': remote ref does not exist
error: failed to push some refs to 'the_name_of_the_repository'
Как я могу удалить ветвь полностью из списка?
Ответы
Ответ 1
Это происходит потому, что, когда ваш партнер вашего запускает git fetch
, удаление ветки не применяется к его репозиторию. fetch
обновляет и добавляет ветки.
Они могут запускать git remote prune origin
, чтобы обрезать удаленные ветки в их списке, которые больше не существуют в восходящем репозитории.
Ответ 2
git fetch --prune <remote>
можно использовать для удаления всех ветвей удаленного отслеживания, которые являются ветвями отслеживания, которые больше не существуют в удаленном репозитории (т.е. они удалены на удаленном компьютере). Из официальной документации ядра Linux Git для fetch
:
-p
--prune
После извлечения удалите все ветки удаленного отслеживания, которые больше не существуют на пульте дистанционного управления.
Вы также можете удалять устаревшие ветки удаленного отслеживания командой
git branch -D -r <remote>/<branch>
как указано в документации для git branch
:
Используйте -r
вместе с -d
для удаления ветвей удаленного отслеживания. Обратите внимание, что имеет смысл удалять ветки удаленного отслеживания, если они больше не существуют в удаленном репозитории, или если git fetch
был настроен не для их повторного использования.
Ответ 3
git branch -r -d 'remote-branch'