簡體   English   中英

Git刪除不在遙控器/原點的遠程分支

[英]Git deleting a remote branch that's not in remotes/origin

我有一個名為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 - > pivot / new_auth。 我試過了:

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

沒運氣。 有任何想法嗎?

您的remotes/pivot/HEAD已創建,因為您為git remote add提供了-m選項(如果省略-m new_auth該命令將不會自動創建-m new_auth )。

克隆存儲庫時會創建類似的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中指定修訂版的<refname>條目(7)


總的來說,我並不清楚你想用git remote add命令完成什么。 如果pivotorigin實際指向同一個遠程存儲庫(相同的“Git URL”),那么就不需要額外的遠程存儲庫。 如果您只想將origin/new_auth作為本地new_auth分支的“上游”分支,那么您可以安排

git branch --set-upstream new_auth origin/new_auth

(如果您已准備好推送,可以使用git push -u完成此操作)。 一旦配置了上游分支,你就可以使用一個簡單的git pull來自你的new_auth簽出時自動從origin/new_auth提取(你可能還想在git config push.default upstream以便git push只會推送到上游分支而不是推送本地和遠程存儲庫中存在的所有分支名稱)。

嘗試這個:

git push remotes/pivot/HEAD :new_auth

要么

git push remotes/pivot :new_auth

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM