Я создал ветвь notmaster
для фиксации, а также нажал некоторые изменения. Когда я закончил эту ветку, я снова объединил изменения в master
, вытолкнул их и удалил локальный notmaster
.
$ git branch -a
* master
remotes/origin/master
remotes/origin/notmaster
Нужно ли удалить удаленный notmaster
?
Немного больше ясности, с решением от Ionut:
Обычный метод не удался для меня:
$ git push origin :notmaster
error: dst refspec notmaster matches more than one.
Это потому, что у меня был тег с тем же именем, что и ветка. Это был плохой выбор от моего имени и вызвал двусмысленность. Итак, в этом случае:
$ git push origin :refs/heads/notmaster
Ответ 1
git push origin :notmaster
, что в основном означает "ничего не нажимать на удаленный сервер notmaster".
Ответ 2
У меня была такая же проблема. У меня была как ветка, так и тег с именем 3.2.
Вот почему он говорит о более чем одном матче:
git error: dst refspec 3.2 matches more than one.
Здесь, как удалить ветку:
git push origin :heads/3.2
А вот как удалить тег:
git push origin :tags/3.2
Ответ 3
git push origin --delete notmaster
Если вы используете Git 1.7.0 или новее, это сделает трюк. До Git 1.7.0 вам нужно было использовать менее интуитивный (но одинаково эффективный) синтаксис:
git push origin :notmaster
Более старый синтаксис по-прежнему работает в более новых версиях Git, но более новый синтаксис кажется более гуманным и легче запоминающимся. Если я хочу удалить ветку, наберите --delete
, как естественная вещь.
Из примечаний к выпуску 1.7.0:
"git нажмите" learn "git push origin --delete branch", синтаксический сахар для "git push origin: branch".
Ответ 4
Это произошло потому, что имя ветки и тега одинаково.
Чтобы удалить ветку с удаленного использования,
git push origin :refs/heads/branchname
Чтобы удалить тег из удаленного использования
git push origin :refs/tags/tagname
Чтобы удалить из локального, вы можете использовать следующее.
git branch -d branchname
git tag -d tagname
Ответ 5
Удалить локальную ветвь:
git branch -d {branch name} //All changes must be committed first.
git branch -D {branch name} //Does not require commit.
Исключить скрытую ветку:
Delete the local branch first.
git push {gitorious push url} :{branch name}
Ответ 6
Следующие шаги также могут сделать трюк:
$ git fetch --prune --tags
$ git push origin :refs/tags/{same-branch-tag-name}
$ git push origin :{same-branch-tag-name}
$ git push --tags