Удаление веток из GitHub - PullRequest
       13

Удаление веток из GitHub

4 голосов
/ 02 декабря 2011

Около 3 недель назад я удалил несколько веток из своего локального репозитория, но никогда не удалял их из своего репозитория на GitHub.Мне нужно очистить некоторые из этих веток, но безуспешно.

Например, я удалил эту ветку из своей локальной 3 недели назад: 1234e-proj

Теперь я пытаюсь запустить:

git push origin :1234e-proj

, и я получаю этоошибка:

error: unable to push to unqualified destination: 1234e-proj
The destination refspec neither matches an existing ref on the remote nor
begins with refs/, and we are unable to guess a prefix based on the source ref.
error: failed to push some refs to

Есть идеи, что я делаю не так?Это происходит с несколькими ветками, которые я уже удалил в своей локальной сети.

Ответы [ 2 ]

1 голос
/ 03 декабря 2011

Прежде всего, дикая догадка: эти ветви на самом деле все еще находятся в репозитории GitHub, видны в Интернете, или вы просто видите их как удаленные ветви в своем репо? (Запустите git remote update --prune, чтобы обновить вещи; это удалит их, если они только в вашем локальном репо.)

Используйте git ls-remote origin, чтобы напечатать ссылки на пульте, как он их видит, например ::

406da7803217998ff6bf5dc69c55b1613556c2f4    HEAD
1e501a7c47ad5ada53d3b1acfb9f131f76e969ec    refs/heads/maint
406da7803217998ff6bf5dc69c55b1613556c2f4    refs/heads/master
56e79320f3d9b044c380dfebf136584aaa17ac5b    refs/heads/next
...

Найдите те, которые вы хотите удалить, затем используйте git push :<ref> для удаления, например, git push :refs/heads/branch-foo.

Я не совсем уверен, что происходит для вас, но если предположить, что ссылки действительно существуют на пульте, это должен быть надежный способ увидеть и удалить их. Мое лучшее предположение состоит в том, что ссылки, которые вы видите на GitHub, на самом деле не в refs/heads, поэтому использование неквалифицированного refname не работает. (Хотя я не уверен, как бы вы оказались в такой ситуации!

1 голос
/ 02 декабря 2011

Вы пытались использовать

git push --delete origin '1234e-proj'

или

git push --mirror origin # warning: pushes all refs and deletes all others!

В противном случае, должно работать.Возможно, вы можете поделиться выводом

git branch -a
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...