2011-08-16 148 views
35

我有2個git分支:master和experimental。重命名遠程git分支

實驗變得很好,我想讓它成爲主人。我想我會重命名洗牌的東西,但這裏是我得到的:

nutebook:Stuff nathan$ git remote rename master old 
error: Could not rename config section 'remote.master' to 'remote.old' 

我使用GitHub和Git-Tower。

回答

56

以下是重命名您的主分支的指南。它可以輕鬆地重命名實驗分支。

以下是我進行重命名的方法。

首先,在您的工作樹中,將本地重命名爲 其他。

git branch -m master old-dev 

重命名一個分支做的工作,而你的分支,所以 沒有必要籤別的東西。

然後,在本地維護分支(2.63分支)重命名爲 主:

git branch -m 2.63-branch master 

現在,時間與遠程混亂。萬一你搞砸了,你可能想要確保你有最新的備份。首先,刪除 遠程的主人:

git push origin :master 

而現在,給遙控你的新主人:

git push origin master:refs/heads/master 

更新:當創建一個新的分支,裁判/頭/前綴是 需要上遙遠的一面。如果分支已經存在(如上面的主機做 ),只需要遠程端的分支名稱。

...和你現在更名爲老師傅:

git push origin old-dev:refs/heads/old-dev 

最後,刪除維護分支的舊名,以避免混亂 :

git push origin :2.63-branch 

客戶現在將獲得「新的'主分支時,他們拉。

請參閱this網站。

+7

要添加到這一點:當我想重新命名我的「高手」在github上,我首先要改變下的「設置」默認分支之前,它將讓我刪除它(即'混帳推產地:master'的)。 –

+0

你能只在本地重命名分支,並將它推到遠程,然後刪除舊的? –

+1

我覺得-u標誌來推動是好的,因爲它設置的新的遠程爲你,例如上游追蹤'git push -u origin master'(使用git 1.7我不需要完整的refs/head前綴) –

1

master是一個分支,而不是像origin這樣的遠程是。如果你希望你的試點工作,你的主分支,只需將其合併在:

git checkout master 
git merge experimental 
0

你試圖做的是從「大師」重命名遠程回購,以「老」。要重新命名另一個回購中的分支,只需將其刪除即可

git push <remote> :<branch name> 

然後將其推送爲其他內容。

4

我認爲最簡單的方法是籤實驗分支,刪除遠程主分支,然後推動本地的實驗作爲一個新的遠程主之一。

// delete the remote master branch by pushing null 
// (the space in front of the semicolon) in this branch 
git push origin :master 
// push local experimental to remote master 
git push origin experimental:master