Подтвердить что ты не робот

Как удалить удаленную ветвь в Git?

Я создал ветвь 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
4b9b3361

Ответ 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