Как вы удаляете удаленную ветку git «правильно», то есть обновляете список удаленных веток для всех пользователей? - PullRequest
34 голосов
/ 03 марта 2011

Я пытаюсь удалить удаленную ветку git, однако процесс не "полностью" удаляет ветку, как я ожидал.

Скажем, например, я удаляю ветку с именем mybranch.Для этого я запускаю следующую команду:

git push origin :mybranch

Это удаляет ветку, как и ожидалось, и если я делаю git branch -a, она больше не появляется в списке локально или удаленно.

У меня проблема в том, что если я иду на машине другого человека, который выполнил git pull в то время, когда существовала ветвь, и он выполняет git branch -a, он все еще находится в их списке как удаленная ветвь.

Мы 'мы пробовали несколько команд, pull, gc, prune, но ничего не обновляет этот список и не удаляет удаленную ветвь.

Есть ли команда для синхронизации (что я могу только предположитьесть) локальный кеш списка удаленных веток и удалите все удаленные ветки, которые больше не существуют?

Ответы [ 2 ]

46 голосов
/ 03 марта 2011

Пока они не обновят свои пульты, их git не будет знать о том, что произошло в хранилище.Как только они выполнят обновление (через git fetch или git remote update), git remote show origin правильно покажет, что у них есть локальные ветви отслеживания для ветвей, которые больше не существуют в восходящем направлении.В этот момент git remote prune можно использовать для удаления устаревших локальных ветвей.

23 голосов
/ 05 сентября 2012

Для удаления веток удаленного отслеживания, которые больше не существуют на пульте.

git fetch -p
...