3 回答

TA貢獻1812條經驗 獲得超5個贊
最接近重命名的是刪除然后在遙控器上重新創建。例如:
git branch -m master master-old
git push remote :master # delete master
git push remote master-old # create master-old on remote
git checkout -b master some-ref # create a new local master
git push remote master # create master on remote
然而,這有很多警告。首先,沒有現成的檢出會了解重命名-蹦也不會嘗試跟蹤分支重命名。如果新的master還不存在,git pull將會出錯。如果master已創建新的。拉動將嘗試合并master和master-old。所以這通常是一個壞主意,除非你得到了之前檢查過存儲庫的每個人的合作。
注意:默認情況下,較新版本的git不允許您遠程刪除主分支。您可以通過將receive.denyDeleteCurrent配置值設置為遠程存儲庫warn或ignore在遠程存儲庫上來覆蓋它。否則,如果您已準備好立即創建新主服務器,請跳過該git push remote :master步驟,然后--force轉到該git push remote master步驟。請注意,如果您無法更改遙控器的配置,則無法完全刪除主分支!
此警告僅適用于當前分支(通常是master分支); 任何其他分支都可以刪除并重新創建,如上所述。

TA貢獻1872條經驗 獲得超4個贊
假設您目前在master
:
git push origin master:master-old # 1 git branch master-old origin/master-old # 2 git reset --hard $new_master_commit # 3 git push -f origin # 4
首先根據本地存儲庫中的提交在存儲庫中創建一個
master-old
分支。origin
master
為這個新
origin/master-old
分支創建一個新的本地分支(它將自動正確設置為跟蹤分支)。現在將您的本地指向您
master
希望它指向的任何提交。最后,
master
在origin
存儲庫中強制更改以反映您的新本地master
。
(如果您以任何其他方式執行此操作,則至少需要再執行一個步驟以確保master-old
正確設置以跟蹤origin/master-old
。在撰寫本文時,其他任何解決方案都不包括此內容。)

TA貢獻1816條經驗 獲得超6個贊
使用Git v1.7,我認為這已經略有改變?,F在,更新本地分支對新遠程的跟蹤引用非常簡單。
git branch -m old_branch new_branch # Rename branch locally
git push origin :old_branch # Delete the old branch
git push --set-upstream origin new_branch # Push the new branch, set local branch to track the new remote
- 3 回答
- 0 關注
- 1197 瀏覽
添加回答
舉報