首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当我删除远程分支时,Git提示远程ref不存在

当我删除远程分支时,Git提示远程ref不存在
EN

Stack Overflow用户
提问于 2016-03-11 21:31:10
回答 13查看 119.1K关注 0票数 199

我运行了git branch -a

代码语言:javascript
复制
* master
  remotes/origin/test
  remotes/origin/master

我想删除我的远程分支

我试过了

代码语言:javascript
复制
git push origin --delete remotes/origin/test

我得到了

错误:无法删除'remotes/origin/test':远程引用不存在

它怎么会不存在呢?

我做了一个git branch -a,我看到它被列出来了。

我错过什么了吗?

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2016-03-11 21:35:51

命令git branch -a显示本地存储库中存在的远程分支。这听起来可能有点困惑,但要理解它,您必须了解远程分支和存在于远程存储库中的分支之间的区别。远程分支是映射到远程存储库的分支的本地分支。因此,远程分支的集合表示远程存储库的状态。

更新远程分支列表的常用方法是使用git fetch。这会自动从远程获取更新的分支列表,并在本地存储库中设置远程分支,还会获取您可能缺少的任何提交对象。

但是,默认情况下,git fetch不会删除在远程计算机上不再具有对应分支的远程分支。为此,您需要显式地修剪远程分支列表:

代码语言:javascript
复制
git fetch --prune

这将自动删除远程上不再存在的远程分支。然后,git branch -r将向您显示远程服务器上实际存在的分支的更新列表:以及可以使用git push删除的分支。

也就是说,为了使用git push --delete,您需要指定远程存储库上分支的名称;而不是您的远程分支的名称。因此,要删除分支test (由您的远程分支origin/test表示),您可以使用git push origin --delete test

票数 406
EN

Stack Overflow用户

发布于 2016-03-11 21:33:49

remotes/origin/test的含义是在远程服务器origin中有一个名为test的分支。所以命令应该是

代码语言:javascript
复制
git push origin --delete test
票数 143
EN

Stack Overflow用户

发布于 2017-07-11 18:20:15

有一个快捷方式可以删除原点中的分支:

git push origin :<branch_name>

这和做git push origin --delete <branch_name>是一样的

票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35941566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档