2011-08-18 174 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部分前面。我试图设置一个远程参考用于区分远程分支。我知道一旦设定它不是正确的方法。 –