Я пытаюсь удалить удаленную ветку git с помощью
git push origin :my_remote_branch
и получая:
error: unable to push to unqualified destination: my_remote_branch
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 'git@example.com:/myrepo'
это мои текущие ветки
git branch -a
* develop
master
remotes/origin/HEAD -> origin/master
remotes/origin/develop
remotes/origin/my_remote_branch
git branch -r --merged
origin/HEAD -> origin/master
origin/develop
origin/master
Приветствуются любые идеи о том, как я могу избавиться от этой ветки.
git fetch
проверить, исправлено ли это несуществующее удаленное имя? Вы пытались зайти в свой.git\refs\remotes\origin
и удалитьmy_remote_branch
файл, чтобы посмотреть, достаточно ли этого?git fetch
но это не помогло. Мы попытаемся найти более простое решение, прежде чем пытаться удалить файл вручную.git fetch -p
чтобы избавиться от устаревших веток отслеживания.Ответы:
Тот факт, что
refs/remotes/origin/my_remote_branch
существует в вашем локальном репозитории, не означает, что онrefs/heads/my_remote_branch
существует вorigin
удаленном репозитории.Сделайте,
git fetch -p origin
чтобыrefs/remotes/origin/my_remote_branch
уйти, если он уже удален в источнике.-p
Опция говорит выборки, чтобы удалить все ветки отслеживания , которые больше не существует в соответствующих пультах дистанционного управления; по умолчанию они хранятся.источник
git fetch -p origin
исправил это для меня. Большое спасибо.git push origin --delete origin/feature/x
дал мне ошибку о несуществовании refgit push origin :feature/x
, удалил ветку. Поэтому я думаю,git push origin --delete <branchName>
что не следует включать происхождение в branchName (?), Но оно завершено bash, что сбивает с толку.git push origin --delete feature/x
, потому что вы даете название филиала в нуле , и она не имеет этот префикс там (две формы иначе синонимы в любом случае).:
не включать,origin
но он завершается как,origin/branch_name
а не простоbranch_name
при использовании--delete
варианта.Обнаружен вопрос, очищающий старые удаленные ветки git, и это помогло
источник
git push origin :my_remote_branch
удаляет ветку с пульта дистанционного управления иgit branch -r -d origin/my_remote_branch
удаляет ее из моего локального списка удаленных ветвейЯ столкнулся с этим при попытке удалить удаленную ветку, которая уже была удалена. Все, что было нужно, это чернослив:
источник
Попробуйте следующие два варианта принудительного удаления удаленной ветки
Опция 1
Вариант 2
источник
мне было мало. Раньше мне приходилось идти на сервер и напрямую работать с каталогом git (что опасно и некрасиво), чтобы удалить ветку:
источник
git push origin :my_remote_branch
. Обратите внимание на толстую кишку.git push origin :my_remote_branch
нормально. Этот уродливый и опасный способ - это когда он не работает (например, из-за неправильно сконфигурированного git).У меня аналогичная проблема. Сначала пошел на это обсуждение, однако я не мог решить проблему, пока не увидел https://stackoverflow.com/a/32147743/4209849 .
которые просто добавляют подсказку о различении
origin/my-branch-name
иmy-branch-name
.Чтобы быть конкретным, я должен использовать:
вместо того
Это, по крайней мере, решило мою проблему, надеюсь, это поможет и другим.
источник
Для меня проблема заключалась в том, что это была моя ветка по умолчанию на github. Я изменил ветку по умолчанию, после чего операция удаления прошла успешно.
Надеюсь, это кому-то поможет
источник
При такой же проблеме я вручную отредактировал свой
./.git/config
файл, включив в него:В результате:
error: src refspec branchName matches more than one.
Это я исправил, запустив$git tag -d branchName
. После этого я смог отправить новую ветку в апстрим.источник
У меня это сработало: я создал удаленную ветку в пользовательском интерфейсе github, а затем отправил туда свою локальную ветку с таким же именем. Попробуйте, если другие способы не работают. Другой способ - создать новую ветку локально и нажать пустую ветку, а затем выбрать свою фиксацию и снова нажать на свой пульт.
источник