Git删除不在遥控器/原点的远程分支

时间:2011-08-18 20:10:38

标签: git github

我有一个名为new_auth的远程分支。我想要一个新的远程分支来跟踪该远程分支,所以我做了以下内容:

git-remote add -t new_auth -m new_auth pivot git@github.com: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 - >枢轴/ new_auth。我试过了:

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

没有运气。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您的remotes/pivot/HEAD已创建,因为您将-m选项提供给git remote add(如果您遗漏-m new_auth,该命令将不会自动创建symref。)

克隆存储库时会创建类似的symref。如果远程存储库具有HEAD ref / symref,则您的克隆将以refs/remotes/origin/HEAD结尾指向与HEAD指向的远程分支对应的远程跟踪分支之一在远程存储库中。

这些symrefs允许您通过使用遥控器的名称来引用遥控器的“默认分支”(例如pivot“将” 1 扩展为refs/remotes/pivot/HEAD,这些指向到refs/remotes/pivot/new_auth)。

您可以使用以下命令删除symref:

git remote set-head pivot -d

1 请参阅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完成此操作)。配置上游分支后,您可以使用裸git pullorigin/new_auth签出后自动从new_auth撤消(您可能还需git config push.default upstream git push只会推送到上游分支,而不是推送本地和远程存储库中存在的所有分支名称。)

答案 1 :(得分:0)

试试这个:

git push remotes/pivot/HEAD :new_auth

git push remotes/pivot :new_auth