小编典典

重命名本地和远程 Git 存储库的主分支

all

我有master跟踪远程分支的分支origin/master

我想将它们重命名为master-old本地和远程。这可能吗?

对于其他跟踪的用户origin/master(并且总是master通过 更新他们的本地分支git pull),在我重命名远程分支后会发生什么?
他们git pull仍然可以工作还是会抛出一个它再也找不到的错误origin/master

然后,进一步,我想创建一个新master分支(本地和远程)。同样,在我这样做之后,如果其他用户这样做,现在会发生什么git pull

我想这一切都会带来很多麻烦。有没有一种干净的方法可以得到我想要的东西?还是我应该master保持原样并创建一个新分支master- new并在那里继续工作?


阅读 216

收藏
2022-03-01

共1个答案

小编典典

最接近重命名的是删除然后在遥控器上重新创建。例如:

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

但是,这有很多警告。首先,现有的结帐不会知道重命名 - Git 不会 尝试 跟踪分支重命名。如果新master的还不存在, git pull
将出错。如果新master的已经创建。拉将尝试合并mastermaster- old。所以这通常不是一个好主意,除非您得到之前签出存储库的每个人的合作。

注意:较新版本的 Git 默认不允许远程删除 master
分支。您可以通过将receive.denyDeleteCurrent配置值设置到远程存储库warnignore远程
存储库上来覆盖它。否则,如果您准备好立即创建新的主节点,请跳过该git push remote :master步骤,然后--force转到该git push remote master步骤。请注意,如果您无法更改远程的配置,您将无法完全删除 master 分支!

此警告仅适用于当前分支(通常是master分支);可以如上所述删除和重新创建任何其他分支。

2022-03-01