我跑了git branch -a
* master
remotes/origin/test
remotes/origin/master
我想删除我的远程分支
我已经尝试了
git push origin --delete remotes/origin/test
我得到了
错误:无法删除'遥控器/原点/测试':远程参考没有 存在
它怎么不存在?
我做了git branch -a
,我看到它已列出。
我错过了什么吗?
答案 0 :(得分:155)
命令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
。
答案 1 :(得分:130)
remotes/origin/test
的含义是您在远程服务器test
中有一个名为origin
的分支。所以命令就是
git push origin --delete test
答案 2 :(得分:21)
删除原点中的分支的快捷方式:
git push origin :<branch_name>
与执行git push origin --delete <branch_name>
答案 3 :(得分:10)
git push origin --delete yourBranch
答案 4 :(得分:9)
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
答案 5 :(得分:1)
一个方便的单行删除除了&#39; master&#39;之外的分支。来自原产地:
git branch --remotes | grep -v 'origin/master' | sed "s/origin\///" | xargs -i{foo} git push origin --delete {foo}
在此之前,请务必了解运行此操作的含义!
答案 6 :(得分:1)
鉴于远程分支是远程分支/ origin / test,您可以使用两种方式:
git push origin --delete test
和
git branch -D -r origin/test
答案 7 :(得分:1)
这应该有帮助:
git fetch
git push origin --delete branchName
答案 8 :(得分:0)
git branch -a
将列出您本地的分支,而不是远程分支。
错误error: unable to delete 'remotes/origin/test': remote ref does not exist
表示您在遥控器中没有该名称的分支,但该分支存在于您的本地。
答案 9 :(得分:0)
对我来说,这行得通$▶git branch -D -r origin / mybranch
详细信息
$▶git branch -a | grep mybranch 遥控器/起源/ mybranch
$▶git branch -r | grep mybranch 起源/ mybranch
$▶git分支 开发 *功能/预部署
$▶git push origin-删除mybranch 错误:无法删除“ mybranch”:远程引用不存在 错误:无法将一些引用推送到'git@10.102.100.38:config / myrepo.git'
$▶git branch -D -r origin / mybranch 删除了远程分支的起源/分支(是62c7421)。
$▶git branch -a | grep mybranch
$▶git branch -r | grep mybranch
答案 10 :(得分:0)
我在解决方案之后是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
。并且分支被删除。
答案 11 :(得分:0)
对于windows
git branch --remotes| %{ $_.Trim().Split("/")[1] }| ?{ $_ -ne 'master' } | | ?{ $_ -ne 'otherBranch' } | %{ git push origin --delete $_ }
答案 12 :(得分:-2)
git push origin --delete origin/test
也应该有用