Git говорит, что удаленный REF не существует, когда я удаляю удаленную ветвь -- git пол Связанный проблема

Git says remote ref does not exist when I delete remote branch


156
vote

проблема

русский

Я бежал <код> git branch -a

 <код> * master   remotes/origin/test   remotes/origin/master   

Я хочу удалить мою удаленную ветвь

Я попробовал

 <код> git push origin --delete remotes/origin/test   

Я получил

Ошибка: Невозможно удалить «пульты / происхождение / тест»: Remote Ref не существуют

Как это не существует?

Я сделал <код> git branch -a , и я увидел его в списке.

Я ничего не пропустил?

Английский оригинал

I ran git branch -a

* master   remotes/origin/test   remotes/origin/master 

I want to delete my remote branch

I've tried

git push origin --delete remotes/origin/test 

I got

error: unable to delete 'remotes/origin/test': remote ref does not exist

How is it not exist ?

I did a git branch -a, and I saw it listed.

Did I miss anything ?

</div
  
       
       

Список ответов

296
 
vote
vote
Лучший ответ
 

Команда <код> git branch -a показывает удаленные ветви, которые существуют в вашем локальном хранилище . Это может звучать немного запутанным, но чтобы понять его, вы должны понимать, что между удаленной веткой разница между удаленной веткой, а ветвь, которая существует в удаленном репозитории. Удаленные ветви локальные филиалы , которые отображают ветви дистанционного репозитория. Таким образом, набор удаленных ветвей представляет состояние удаленного репозитория.

Обычный способ обновления списка удаленных ветвей - использовать <код> git fetch . Это автоматически получает обновленный список веток с удаленного и устанавливает удаленные ветви в локальном репозитории, а также вытесняет любые объекты Commit, которые вы можете отсутствовать.

Однако по умолчанию <код> git fetch не удаляет удаленные ветви, которые больше не имеют аналогичной ветви для анализа на пульте. Чтобы сделать это, вы явно надо BRUNE Список удаленных ветвей:

 <код> git fetch --prune   

Это автоматически избавляется от удаленных ветвей, которые больше не существуют на пульте. После этого <код> git branch -r покажет вам обновленный список филиалов, которые действительно существуют на пульте дистанционного управления: а те, которые вы можете удалить, используя <код> git push .

Это, как говорят, чтобы использовать <код> git push --delete , вам необходимо указать имя ветви на удаленном репозитории; Не название вашей дистанционной ветви. Итак, чтобы удалить филиал <код> test (представленный вашим удаленным ветем <код> origin/test ), вы бы использовали <код> git push origin --delete test .

 

The command git branch -a shows remote branches that exist in your local repository. This may sound a bit confusing but to understand it, you have to understand that there is a difference between a remote branch, and a branch that exists in a remote repository. Remote branches are local branches that map to branches of the remote repository. So the set of remote branches represent the state of the remote repository.

The usual way to update the list of remote branches is to use git fetch. This automatically gets an updated list of branches from the remote and sets up remote branches in the local repository, also fetching any commit objects you may be missing.

However, by default, git fetch does not remove remote branches that no longer have a counterpart branch on the remote. In order to do that, you explicitly need to prune the list of remote branches:

git fetch --prune 

This will automatically get rid of remote branches that no longer exist on the remote. Afterwards, git branch -r will show you an updated list of branches that really exist on the remote: And those you can delete using git push.

That being said, in order to use git push --delete, you need to specify the name of the branch on the remote repository; not the name of your remote branch. So to delete the branch test (represented by your remote branch origin/test), you would use git push origin --delete test.

</div
 
 
   
   
138
 
vote

Значение <код> git fetch0 заключается в том, что у вас есть ветка под названием <код> git fetch1 на удаленном сервере <код> git fetch2 . Таким образом, команда будет

 <код> git fetch3  
 

The meaning of remotes/origin/test is that you have a branch called test in the remote server origin. So the command would be

git push origin --delete test 
</div
 
 
26
 
vote

Есть ярлык для удаления ветви в источнике:

<Код> git fetch4

Что такое же, как и делать <код> git fetch5

 

There's a shortcut to delete the branch in the origin:

git push origin :<branch_name>

Which is the same as doing git push origin --delete <branch_name>

</div
 
 
15
 
vote
  1. Получить список удаленных ветвей
 <Код> git fetch6  
  1. Вы должны получить список удаленных ветвей:
 <Код> git fetch7  
  1. Теперь мы можем удалить ветку:
 <Код> git fetch8  
 
  1. get the list of remote branches
git fetch # synchronize with the server git branch --remote # list remote branches 
  1. you should get a list of the remote branches:
origin/HEAD -> origin/master origin/develop origin/master origin/deleteme 
  1. now, we can delete the branch:
git push origin --delete deleteme 
</div
 
 
 
 
12
 
vote

<Код> git fetch9

 

git push origin --delete yourBranch

</div
 
 
5
 
vote

Учитывая, что удаленная ветвь является удаленным / исходным / тестом, вы можете использовать два способа:

 <код> git fetch0  

и

 <код> git fetch1  
 

Given that the remote branch is remotes/origin/test you can use two ways:

git push origin --delete test 

and

git branch -D -r origin/test 
</div
 
 
3
 
vote

Я последовал за решением poke с незначительной корректировкой в ​​конце. Мои шаги следуют
- <код> git fetch2 ;
- <Код> git fetch3 Печать следующих
<код> git fetch4
<код> git fetch5
<код> git fetch6
<код> git fetch7
<код> git fetch8 (удаленная ветвь для удаления)
- <Код> git fetch9 .
Здесь ветвь для удаления не названа как <код> git fetch --prune 0 , но просто <код> git fetch --prune 1 . И ветвь удаляется.

 

I followed the solution by poke with a minor adjustment in the end. My steps follow
- git fetch --prune;
- git branch -a printing the following
    master
    branch
    remotes/origin/HEAD -> origin/master
    remotes/origin/master
    remotes/origin/branch (remote branch to remove)
- git push origin --delete branch.
Here, the branch to remove is not named as remotes/origin/branch but simply branch. And the branch is removed.

</div
 
 
 
 
2
 
vote
<Р> Удобный один вкладыш к другим, чем «мастер» удалить ветви от происхождения:
 <код> git branch --remotes | grep -v 'origin/master' | sed "s/origin///" | xargs -i{foo} git push origin --delete {foo}   
<Р> Убедитесь, что вы понимаете все возможные последствия использования этого прежде чем делать это!
 

A handy one-liner to delete branches other than 'master' from origin:

git branch --remotes | grep -v 'origin/master' | sed "s/origin///" | xargs -i{foo} git push origin --delete {foo} 

Be sure you understand the implications of running this before doing so!

</div
 
 
 
 
1
 
vote

<код> git branch -a перечислит ветви на локальном компьютере и не ветвей в пульте дистанционного управления.

<Р> А ошибка <код> error: unable to delete 'remotes/origin/test': remote ref does not exist означает, что вы не имеете филиала в этом имени в пульте дистанционного управления, но ветвь существует в локальном.
 

git branch -a will list the branches in your local and not the branches in your remote.

And the error error: unable to delete 'remotes/origin/test': remote ref does not exist means you don't have a branch in that name in your remote but the branch exists in your local.

</div
 
 
 
 
1
 
vote
<Р> Для меня это работало $ ▶ мерзавец ветвь -D -r происхождения / mybranch

Детали

<Р> $ ▶ мерзавец ветви -a | Grep mybranch пульты дистанционного управления / происхождение / mybranch <Р> $ ▶ мерзавец ветвь -r | Grep mybranch Происхождение / mybranch <Р> $ ▶ мерзавец филиал развивать * Функция / предварительное развертывание <Р> $ ▶ мерзавец толчок происхождение --delete mybranch Ошибка: не удалось удалить «mybranch»: удаленный исх не существует Ошибка: не удалось нажать несколько рефов к 'git@10.102.100.38: конфиг / myrepo.git <Р> $ ▶ мерзавец ветвь -Д -r происхождения / mybranch Удаленная удаленная ветвь происхождение / mybranch (было 62c7421). <Р> $ ▶ мерзавец ветви -a | Grep mybranch <Р> $ ▶ мерзавец ветвь -r | Grep mybranch
 

For me this worked $ ▶ git branch -D -r origin/mybranch

Details

$ ▶ git branch -a | grep mybranch remotes/origin/mybranch

$ ▶ git branch -r | grep mybranch origin/mybranch

$ ▶ git branch develop * feature/pre-deployment

$ ▶ git push origin --delete mybranch error: unable to delete 'mybranch': remote ref does not exist error: failed to push some refs to 'git@10.102.100.38:config/myrepo.git'

$ ▶ git branch -D -r origin/mybranch Deleted remote branch origin/mybranch (was 62c7421).

$ ▶ git branch -a | grep mybranch

$ ▶ git branch -r | grep mybranch

</div
 
 
1
 
vote

Это должно помочь:

  1. <код> git fetch
  2. <код> git push origin --delete branchName
 

This should help:

  1. git fetch
  2. git push origin --delete branchName
</div
 
 
0
 
vote

для <код> windows

 <код> git branch --remotes| %{ $_.Trim().Split("/")[1] }| ?{ $_ -ne 'master' } | | ?{ $_ -ne 'otherBranch' } | %{ git push origin --delete $_ }   
 

For windows

git branch --remotes| %{ $_.Trim().Split("/")[1] }| ?{ $_ -ne 'master' } | | ?{ $_ -ne 'otherBranch' } | %{ git push origin --delete $_ } 
</div
 
 
-1
 
vote
 <код> git push origin --delete origin/test    
<Р> должен работать, а
 
git push origin --delete origin/test  

should work as well

</div
 
 
 
 

Связанный проблема

4  Чистый запуск SSHD HelpMSG 3534  ( Net start sshd helpmsg 3534 ) 
Я пытаюсь настроить git на коробке Windows и пока все, кажется, работает ... кроме этого: <Код> find_end6 Получает ошибку <код> find_end7 Когда я набрал...

102  Могу ли я удалить все локальные ветви, кроме текущего?  ( Can i delete all the local branches except the current one ) 
Я хочу удалить все ветви, которые получают перечисленные в выходе ... <код> $ git branch ... но держать текущую ветку, за один шаг . Это возможно? Если...

0  Зеркальные страницы GitHub из главного филиала - главная ветвь не обновляет  ( Mirroring github pages from master branch master branch not updating ) 
Я хотел отразить свой ветвь Github Pages, чтобы соответствовать главной ветви, чтобы всякий раз, когда я нажимаю origin master , gh-pages FINIVILE. Я сле...

218  Попытка потянуть с ошибкой: не может открыть .git / fetch_head: разрешение запрещено  ( Trying to git pull with error cannot open git fetch head permission denied ) 
Помогите мне, пожалуйста, я пытаюсь запустить это в моем терминале: <код> asgard@asgard-A7N8X2-0:~/CollegePortal$ git pull error: cannot open .git/FETCH_HEA...

8  Откатываясь в старую редацию в Mercurial (например, сброс Git)  ( Rolling back to an old revision in mercurial like git reset ) 
Использование git, я могу выбросить ошибку или случайные коммита, используя команду, как <код> git reset --soft HEAD^ Что сбрасывает текущую ветку (напр...

6  репо инициативный коммит  ( Repo init a particular commit ) 
IM Создание системы Cyanogenmod 9 (Android ICS) для телефона Nexus S (Samsung Crespo). Проблема в том, что если я сделаю: <код> repo init -u git://github.co...

420  Как найти / Определить большие коммиты в истории Git?  ( How to find identify large commits in git history ) 
У меня есть 300 МБ Git Reppo. Общий размер моих текущих зарегистрированных файлов составляет 2 МБ, а общий размер остальной части REPO GIT составляет 298 МБ. ...

0  Git Merge или ребазу?  ( Git merge or rebase ) 
У меня есть проект, в котором мой главный ветвь опережает резервную ветку. Из-за некоторых вопросов в коде мы хотим использовать ветку резервного копирования ...

11  Почему "Git push helloworld + Master: Master" вместо просто "git push helvelorld"?  ( Why git push helloworld mastermaster instead of just git push helloworld ) 
Я пытался протолкнуть мою (первый в мире!) Git Reppo, как это изначально: <код> $ git push helloworld Но я получил эту спину: <код> To git-smichaels@f...

0  Digitalocean не обновляет должным образом  ( Digitalocean not updating properly ) 
У меня есть проект реагирования, который я загрузил в цифровой океан. У меня есть проблема, где я внес некоторые изменения в проект. Требуется ли Git Pull (см...

13  Heroku не обновляет мой код?  ( Heroku is not updating my code ) 
Итак, я сделал некоторые изменения CSS на моем местном, бегали <код> git add . , <код> git commit -am "Hello" , <код> git push heroku master , а по какой-то п...

0  Git View / diff не работает в bug genie  ( Git view diff not working in bug genie ) 
Наш GIT Chayits показывает просто в боковой панели на билетах, но попытки просмотра / разных этих файлов собираются на 404. У кого есть какие-либо идеи, где я...

1  GIT CLONE FAY INFO: разрешение запрещено (Publickey)  ( Git clone fail infopermission deniedpublickey ) 
Команда git клон git@github.com ********* не удалось с информацией: <код> Permission denied (publickey). fatal: Could not read from remote repository....

7  Как переопределить Anmaiged Git Checkout с версией вверх по течению  ( How to override unmerged git checkout with upstream version ) 
Я пытаюсь вернуть файл, измененный локально к версии, которая является последним выше по течению, эффективно отменив мои изменения. <код> $ git checkout -- ...

0  Git и ручной интеграции типа проекта SCM с AWX  ( Git and manual scm project type integration with awx ) 
Когда люди работают, они пытаются сохранить свою историю свободными от совершения ошибок, то есть нежелательные версии кода, которые они знают, неисправен с с...