2012-10-03 111 views
0

我意外地創建了一個分支並將其推送到原點。我從另一個分支創建它,但沒有提交任何更改,所以它應該與原始分支「相同」。無法刪除或修剪沒有提交的遠程分支

我想刪除的分支,所以我第一次刪除它在本地:

git branch -d <branch_name> 

,然後我想從遠程位置刪除:

git push origin :<branch_name> 

但是這給了我錯誤:

error: unable to push to unqualified destination: 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. fatal: The remote end hung up unexpectedly

我在StackOverflow的另一個線程中發現有關此錯誤的信息(Cannot delete a remote branch created unintentionally),並在其他網站(git: prune to remove old remote tracking branches),但解決他們提出:

git remote prune origin 

不會爲我工作。 prunning命令正確退出,但我仍然看到分支當我git branch -rgit branch -a

我也試過git remote updategit fetch但是這並沒有改變任何東西。

如何從分支機構列表中刪除此分支?

+1

'git的遠程prune'僅會一旦分支從遠程存儲庫中刪除,清理你的本地參考。 'git ls-remote origin'顯示分支仍然在那裏?如果是這樣,'git push origin:'不能刪除它,我會嘗試完全合格的路徑名稱:'git push origin:refs/heads/'。您應該在'git ls-remote'的輸出中看到完全限定的名稱。只需複製並粘貼即可。 – jszakmeister

+0

謝謝@jszakmeister!看到我對poke答案的評論。 –

回答

1

嘗試git fetch --prune origin

否則,你可以手動從本地資源庫中刪除分支,看看它是否回來上git fetch(在這種情況下,它並沒有在遙控器上刪除):

git branch -d -r origin/branch 
+0

謝謝。唯一的命令是'git branch -d -r origin/branch'。我想現在我的問題是:爲什麼?這個命令與我在原始文章中嘗試的所有內容有什麼不同? –

+0

該分支是否回到'git fetch'上?還是現在好了? – poke

+0

其實,在'git fetch'後它回來..:/ –