所以我的遙控器上有一個叫做feature1的分支。我試圖創建一個本地分支通過跟蹤此:刪除本地「遠程分支」而不刪除遠程分支?
git checkout -b origin/feature1
但現在git branch
顯示我:
master
*origin/feature1
,我也知道這是不對的。本地應該是feature1
,而不是origin/feature1
。
如何在遠程分支完好無損的情況下將其刪除,並將其設置正確?我做錯了什麼?
所以我的遙控器上有一個叫做feature1的分支。我試圖創建一個本地分支通過跟蹤此:刪除本地「遠程分支」而不刪除遠程分支?
git checkout -b origin/feature1
但現在git branch
顯示我:
master
*origin/feature1
,我也知道這是不對的。本地應該是feature1
,而不是origin/feature1
。
如何在遠程分支完好無損的情況下將其刪除,並將其設置正確?我做錯了什麼?
你的命令應該是:
git checkout -b feature1 origin/feature1
它說「結賬,並創建分支feature1
,和跟蹤origin/feature1
'。你所做的是創建一個名字爲origin/feature1
的分支,它不跟蹤任何遠程分支。
爲了解決這個問題,交換到另一個分支:
git checkout master
然後將其刪除:
git branch -d origin/feature1
什麼你在這裏做的是創建一個名爲origin/feature1
一個普通的地方分支。 Git對此非常滿意 - 在內部,它的名字是refs/heads/origin/feature1
,它明確表示它是一個普通的本地分支 - 儘管用戶非常困惑,他們認爲它看起來像是一個遠程跟蹤分支。
由於Rob already answered,您可以簡單地刪除具有僞造名稱的本地分支。或者,也可以將其重命名,這避免了先下車吧:
$ git branch
master
* origin/feature1
$ git branch -m feature1
$ git branch
master
* feature1
注意實際的遠程分支有與refs/remotes/
開始全面內部名稱,並可以運行git symbolic-ref HEAD
看到的完整的內部名稱目前的分支(如果你知道refs/heads/
與refs/remotes/
之間的事情,這可能不太令人困惑)。
OH right'git branch -d etc'不會刪除遠程分支。完全忘了。 – Aerovistae
問題....'git branch -d origin/fea'不是自動填充該分支名稱,儘管.... – Aerovistae
@Aerovistae我也有這個問題,也許git與命名混淆(並在看當地的遙控器)。但是,手動編寫它確實有效(在回答之前在本地進行測試)。 – Rob