2013-03-26 131 views

回答

3

應按以下步驟工作,假設你的遙控器的名稱爲origin

# Rename local master to somethingelse 
git branch -m master somethingelse 

# Delete the remote named origin's master 
git push origin :master 

# Checkout local somethingelse 
git checkout somethingelse 

# Push the branch somethingelse to remote 
git push origin somethingelse 

# Update the remote tracking branch for somethingelse 
# otherwise the next pull/push might fail 
git branch -u origin/somethingelse somethingelse 

這些步驟有很多的問題:

  • 沒有現成的檢出會知道分支重新命名
  • 如果遠程設備上沒有名爲master的分支,下一個git pull會出現錯誤。作爲默認分支的原因在遠程服務器上不存在。使用我在末尾提到的git symbolic-ref命令更新遠程服務器上的默認分支。
  • 在較新的git版本中,要刪除遠程分支,您需要將receive.denyDeleteCurrent配置爲warnignore,否則它不會讓您執行刪除操作。如果您無法更改遙控器上的配置,則無法刪除遙控器上的分支。雖然您可以將分支主人重置到樹中的其他位置,並執行push -f

遠程服務器上的更改默認分支:

您需要訪問到遠程服務器來配置將上一個新的克隆簽出的默認分支:

git symbolic-ref HEAD refs/heads/somethingelse 
+0

謝謝tuxdude。我做了什麼:第一步(重命名),然後刪除遠程回購,然後創建一個新的裸回購,然後是第三和第四步。現在,如果我嘗試在新的位置克隆遠程倉庫,它會說「警告:遠程倉庫指的是不存在的倉庫,無法結帳。」然後我進入克隆的倉庫,執行'git checkout somethingelse'和當我沒有「主人」分支時,我會一直得到這個警告信息嗎? – trusktr

+0

請注意,我是唯一一個訪問回購站的人,所以沒有其他人的結賬問題,這只是我的私人本地和遠程回購編輯:我有本地和遠程的根訪問 – trusktr

+1

@trusktr - 我已經用這些信息更新了答案是的,你需要總是在遠程配置一些默認分支,否則你會得到那個警告每個'克隆'上 – Tuxdude

相關問題