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



Я пытаюсь удалить удаленную ветку 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


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

449   9  
git

9 ответов:

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

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

нашли вопрос очистка старых удаленных ветвей git и это сделало трюк

git branch -r -d origin/my_remote_branch

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

git remote prune origin
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

попробуйте следующие два варианта, чтобы удалить удаленную ветку насильно

1
get push origin --delete <branchName>
2
git fetch -p origin
git branch -r -d origin/<branchName>

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

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

была такая же проблема, я вручную отредактировал мой включает:

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

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

у меня аналогичная проблема. Сначала пошел на эту дискуссию, однако я не мог решить проблему, пока не увидел https://stackoverflow.com/a/32147743/4209849.

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

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

git push origin :my_remote_branch

вместо

git push origin :origin/my_remote_branch

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

Это сработало для меня: Я создал удаленную ветвь в пользовательском интерфейсе github, а затем нажал свою локальную ветвь, которая имела то же имя. Попробуйте его в случае, если другие способы не работают. Другой способ - создать новую ветвь локально и нажать пустую ветвь, а затем вишневый выбор фиксации и снова нажать на пульт.

Comments

    Ничего не найдено.