2011-08-18 192 views
3

我有一個名爲new_auth的遠程分支。我想要一個新的遠程分支用於跟蹤遠程分支,所以我做了以下內容:Git刪除不在遠程/遠程的遠程分支

git-remote add -t new_auth -m new_auth pivot [email protected]:myco/my_project.git/my_project 

現在,當我做的git分支-a,我看到:

* master 
    new_auth 
    remotes/origin/HEAD -> origin/master 
    remotes/origin/new_auth 
    remotes/pivot/HEAD -> pivot/new_auth 

我想刪除這個遙控器/ pivot/HEAD - > pivot/new_auth。我已經試過:

git push pivot :new_auth 
git branch -rd pivot/new_auth 
git remote rm pivot 
git remote rm pivot/new_auth 

沒有運氣。有任何想法嗎?

+1

'git branch --notrack pivot/HEAD' ?? ([man git-branch](http://www.kernel.org/pub/software/scm/git/docs/git-branch.html)) – Nayuki

回答

0

試試這個:

git push remotes/pivot/HEAD :new_auth 

git push remotes/pivot :new_auth 
2

remotes/pivot/HEAD的形成是因爲你給了-m選項git remote add(如果你離開了-m new_auth的命令不會自動創建symref)。

克隆存儲庫時會創建類似的symref。如果遠程存儲庫具有HEAD ref/symref,則它的克隆將以refs/remotes/origin/HEAD指向與遠程存儲庫中由HEAD指向的遠程分支對應的一個遠程跟蹤分支而結束。

這些symrefs讓您只要使用遙控器上的名字指的是遠程的「默認分支」(例如pivot「擴展」 到refs/remotes/pivot/HEAD,指向refs/remotes/pivot/new_auth)。

你可以用這個命令刪除symref:

git remote set-head pivot -d 

gitrevisions(7)指定修訂的<refname>條目。


總的來說,我不清楚你用git remote add命令試圖完成什麼。如果pivotorigin實際上指向相同的遠程存儲庫(相同的「Git URL」),那麼應該不需要額外的遠程服務器。如果你只是想origin/new_auth成爲當地new_auth分支「上游」分支,然後你可以安排與

git branch --set-upstream new_auth origin/new_auth 

(這也可以用做git push -u如果你已經有一些準備推)。一旦配置了上游分支,當您檢出new_auth(您可能還需要git config push.default upstream,以便git push只會推送到上游分支而不是推送存在的所有分支名稱時,可以使用裸露的git pull自動從origin/new_auth中提取在本地和遠程存儲庫中)。

+0

謝謝Chris!這工作。爲了澄清,沒有 - 在git remote set-head pivot -d的set-head部分前面。我試圖設置一個遠程參考用於區分遠程分支。我知道一旦設定它不是正確的方法。 –