我运行了git branch -a
* master
remotes/origin/test
remotes/origin/master
我想删除我的远程分支。我已经尝试过。
git push origin --delete remotes/origin/test
我遇到了以下错误:
错误:无法删除'remotes/origin/test':远程引用不存在
怎么会不存在呢?
我执行了git branch -a
,发现它被列出来了。
我有什么遗漏吗?
我运行了git branch -a
* master
remotes/origin/test
remotes/origin/master
我想删除我的远程分支。git push origin --delete remotes/origin/test
我遇到了以下错误:
错误:无法删除'remotes/origin/test':远程引用不存在
怎么会不存在呢?
我执行了git branch -a
,发现它被列出来了。
我有什么遗漏吗?
git branch -a
显示在本地仓库存在的远程分支。这可能听起来有点困惑,但要理解它,您必须了解远程分支和存在于远程存储库中的分支之间的区别。远程分支是映射到远程存储库分支的本地分支。因此,远程分支集表示远程存储库的状态。git fetch
。这将自动从远程获取更新的分支列表,并设置本地仓库中的远程分支,还会获取您可能缺少的任何提交对象。git fetch
不会删除那些在远程没有对应分支的远程分支。为了做到这一点,您需要显式修剪远程分支列表:git fetch --prune
这将自动清除在远程不存在的分支。之后,git branch -r
将向您显示一个已更新的实际存在于远程的分支列表:您可以使用 git push
删除其中的分支。
话虽如此,要使用 git push --delete
,您需要指定远程存储库中分支的名称,而不是您的远程分支的名称。因此,要删除名为 test
的分支(由您的远程分支 origin/test
表示),您应该使用 git push origin --delete test
。
--delete
,然后将您的本地分支实际推送到远程即可。 - pokeorigin
)中,命令应为 git fetch --prune <远程仓库名称>
。 - aidandenoremotes/origin/test
的含义是你在远程服务器 origin
上有一个名为 test
的分支。因此,命令应该是:
git push origin --delete test
有一个删除远程分支的快捷方式:
git push origin :<branch_name>
与执行 git push origin --delete <branch_name>
相同。
git fetch # synchronize with the server
git branch --remote # list remote branches
origin/HEAD -> origin/master
origin/develop
origin/master
origin/deleteme
git push origin --delete deleteme
远程引用不存在
。 - Kokodoko我按照poke提供的解决方案进行了微小的调整。我的步骤如下:
git fetch --prune
;
git branch -a
,输出如下:
master
branch
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/branch
(要删除的远程分支)
git push origin --delete branch
。
remotes/origin/branch
,而只是branch
。然后分支就被删除了。origin/branch
分支,但实际上应该只是删除 branch
分支。 - kenremotes/origin/branch
,即使branch -a
清楚地显示路径确实是那样。只有当我仅使用分支名称时,它才起作用,就像你说的那样。所以感谢您的发布,否则我可能需要很长时间才能尝试这个方法。 - Mote Zartgit push origin --delete yourBranch
假设远程分支是 remotes/origin/test,你可以有两种方法:
git push origin --delete test
和
git branch -D -r origin/test
对于我而言,这个方法行得通 $ ▶ git branch -D -r origin/mybranch
细节
$ ▶ 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 已删除远程分支 origin/mybranch (原来是 62c7421)。
$ ▶ git branch -a | grep mybranch
$ ▶ git branch -r | grep mybranch
您只需要修剪列表(清理列表),因为该分支不再存在。
运行以下命令:
git fetch --prune
要进行验证,请运行
git branch -r
您应该看到一个仅包含现有远程存储库的新列表
git push origin -d branch-name
。 - undefinedgit branch --remotes | grep -v 'origin/master' | sed "s/origin\///" | xargs -i{foo} git push origin --delete {foo}
在执行此操作之前,请确保您理解其影响!
git branch -a
会列出您本地分支,但不会列出远程分支,对吧? - user1846747git fetch --prune
- hassanzadeh.sd