2013-07-09 71 views
11

我知道這已被覆蓋,但我已經嘗試了以下,似乎無法刪除遠程分支。如何使用Git刪除遠程分支?

[email protected]:~/workspace/3DOD_VARIANCE$ git branch -a 
* master 
    remotes/origin/HEAD -> origin/master 
    remotes/origin/master 
    remotes/origin/multi_gauss_at_nodes 
    remotes/origin/old-state-with-mean-deviation-from-centre 
    remotes/origin/variance-branch 


[email protected]:~/workspace/3DOD_VARIANCE$ git branch -r -d origin/old-state-with-mean-deviation-from-centre Deleted remote branch origin/old-state-with-mean-deviation-from-centre (was 0ed90b2). 


Fetching origin 
From https://bitbucket.org/alykhantejani/3dobjectdetection 
* [new branch]  old-state-with-mean-deviation-from-centre -> origin/old-state-with-mean-deviation-from-centre 

正如您所看到的分支已被再次提取。任何想法我做錯了什麼?

另外,作爲一個便箋,有沒有一種方法可以讓我檢查這個分支是否已經在我刪除之前合併回主?

+1

可能重複Git支持本地和GitHub?](http://stackoverflow.com/questions/2003505/how-do-i-delete-a-git-branch-both-locally-and-in-github) – Livius

+0

@ Livius Hi ,是的,我首先提到這個問題,但沒有運氣 – Aly

+0

「沒有運氣」不是一個有用的錯誤報告。此外,爲什麼你的問題沒有說明你嘗試瞭解決方案? – Chronial

回答

17

的全按命令如下

git push <remote name> <local branch>:<remote branch> 

只需發送「n在所有O分支」到遠程服務器的方法:

git push origin :old-state-with-mean-deviation-from-centre 

對於旁註:混帳阻止你刪除,當你使用尚未合併分支‘的Git分支-D’(並告訴你使用 - D,如果你確實要刪除它)。

還要注意git branch -d -r <branch name>刪除您的git的文件夾中的引用(而不是位於遠程服務器上的真正的分支),這就是爲什麼新的獲取將重新創建它

的[我如何刪除
+0

謝謝,這已經解決了這個問題。請你可以強調遠程分支名稱上不需要origin/qualifier,因爲這會讓我失敗。 – Aly

+1

您可以使用「分支」命令執行的所有操作都涉及您的本地存儲庫,即.git文件夾。 'git branch -d -r origin/master'涉及文件.git/refs/remotes/origin/master(它包含一個sha1)將被刪除,但不是服務器上的一個(因爲沒有分支被命名爲「origin /主「代表分支名稱的一部分)。 如果您鍵入'git push:origin/old-branch',它將嘗試刪除不存在的分支「origin/old-branch」(以原點作爲名稱空間)。 – Asenar

18

要刪除遠程分支運行如下:

git push origin :branch-to-delete 

的訣竅是在結腸

+0

關於如何在刪除之前檢查這個分支是否已經合併到master中的任何想法? – Aly

+0

git分支 - 包含那個分支。它會給你的分支列表,包含該分支,如果你的分支在列表中,你可以刪除它。 – grafa

+0

嘗試了上述命令並得到以下結果:無法推送到不合格的目的地:原點/舊狀態與平均偏​​離中心目標參考點既不匹配遠程的現有參考點也不匹配 以refs/ – Aly

2

嘗試

git push origin :remote_branch_to_be_deleted