При удалении удаленной ошибки git branch ": невозможно нажать на неквалифицированный адрес назначения"

Я пытаюсь удалить удаленную ветвь 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 '[email protected]:/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

Любые идеи о том, как я могу избавиться от этой ветки, будут оценены.

Ответ 1

Тот факт, что refs/remotes/origin/my_remote_branch существует в вашем локальном репозитории, не означает, что refs/heads/my_remote_branch существует в удаленном репозитории origin.

Сделайте git fetch -p origin, чтобы сделать refs/remotes/origin/my_remote_branch, если он уже удален по происхождению. Опция -p сообщает fetch об удалении любых ветвей отслеживания, которые больше не существуют в соответствующих пультах; по умолчанию они хранятся.

Ответ 3

Я столкнулся с этим при попытке удалить удаленную ветку, которая уже была удалена. Все, что было необходимо, было черносливом:

git remote prune origin

Ответ 4

git branch -r -d origin/my_remote_branch
Мне было недостаточно. Прежде чем я должен был перейти на сервер и работать с git каталогом напрямую (что опасно и уродливо), чтобы удалить ветку:
ssh mygitserver
su - git
cd /home/git/repositories/my_remote_branch.git/
git  --git-dir=. --work-tree=/tmp/ branch -D my_remote_branch

Ответ 5

Попробуйте выполнить две опции для принудительного удаления удаленной ветки

Вариант 1

get push origin --delete <branchName>

Вариант 2

git fetch -p origin
git branch -r -d origin/<branchName>

Ответ 6

Если бы эта же проблема, я вручную отредактировал мой файл ./.git/config, чтобы включить:

[branch "branchName"]
remote = origin
merge = refs/heads/branchName

Это привело к: error: src refspec branchName matches more than one. Этому я исправил, запустив $git tag -d branchName. После этого я смог подтолкнуть новую ветку вверх по течению.

Ответ 7

У меня подобная проблема. Сначала я пошел на эту дискуссию, однако я не мог решить проблему, пока не увидел fooobar.com/questions/46020/....

, которые просто добавляют подсказку для выделения origin/my-branch-name и my-branch-name.

Чтобы быть конкретным, я должен использовать:

git push origin :my_remote_branch

вместо

git push origin :origin/my_remote_branch

Это решило мою проблему, по крайней мере, надеюсь, что это поможет и другим.

Ответ 8

Для меня проблема заключалась в том, что это была моя ветка по умолчанию на github. Я изменил ветвь по умолчанию, а затем удалил операцию.

Надеюсь, что это поможет кому-то.