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条经验 获得超3个赞
假设您目前在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,我认为这已经略有改变。现在,更新本地分支对新远程的跟踪引用非常简单。
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 关注
- 1164 浏览
添加回答
举报