2011-12-02 124 views
4

大约3个星期前,我从本地存储库中删除了一些分支,但从未从GitHub上的存储库中删除它们。我需要清理一些这些分支,但一直不成功。从GitHub删除分支

举个例子,我以前删除这个分支从我的本地3周:1234e-proj

现在我试图运行:

git push origin :1234e-proj 

,我得到这个错误:

error: unable to push to unqualified destination: 1234e-proj 
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 

任何想法我做错了什么?这发生在我已经在本地删除的几个分支。

回答

1

你有没有尝试使用

git push --delete origin '1234e-proj' 

git push --mirror origin # warning: pushes all refs and deletes all others! 

否则,应该工作。也许你可以共享

git branch -a 
+0

这里是一些输出: git push --delete origin'1234e-proj' remotes/origin/5370-event-模块 遥控器/产地/ 5370-修订 遥控器/产地/ 5370-路线 遥控器/ LV/5239h-ftaf 遥控器/ LV/5334-ftaf假期 遥控器/ LV/5334b-ftaf假期 我所用以1234e-proj为例,但在尝试从回购库中删除这些分支时出现同样的错误。感谢您的帮助。 – mmalv

1

首先,胡乱猜测的输出:是那些树枝居然还在GitHub库,在网络上可见的,还是你只是看到他们在你的回购远程分支机构? (运行git remote update --prune更新的东西,那将修剪他们,如果他们仅仅是在你的本地回购。)

使用git ls-remote origin打印遥控器上的裁判,作为远程​​看到他们,例如:

406da7803217998ff6bf5dc69c55b1613556c2f4 HEAD 
1e501a7c47ad5ada53d3b1acfb9f131f76e969ec refs/heads/maint 
406da7803217998ff6bf5dc69c55b1613556c2f4 refs/heads/master 
56e79320f3d9b044c380dfebf136584aaa17ac5b refs/heads/next 
... 

找到你要删除的人,然后用git push :<ref>删除,例如git push :refs/heads/branch-foo

我并不完全确定发生了什么事情,但假设参考文件确实存在于遥控器上,这应该是一种查看和删除它们的万无一失的方法。我最好的猜测是你在GitHub上看到的ref实际上并不在refs/heads中,所以使用不合格的refname不起作用。 (我不知道你怎么会在这种情况下结束,但是!

+0

'git remote update --prune'为我工作 – hobs