我有master跟踪远程分支的分支origin/master。
master
origin/master
我想将它们重命名为master-old本地和远程。这可能吗?
master-old
对于其他跟踪的用户origin/master(并且总是master通过 更新他们的本地分支git pull),在我重命名远程分支后会发生什么? 他们git pull仍然可以工作还是会抛出一个它再也找不到的错误origin/master?
git pull
然后,进一步,我想创建一个新master分支(本地和远程)。同样,在我这样做之后,如果其他用户这样做,现在会发生什么git pull?
我想这一切都会带来很多麻烦。有没有一种干净的方法可以得到我想要的东西?还是我应该master保持原样并创建一个新分支master- new并在那里继续工作?
master- new
最接近重命名的是删除然后在遥控器上重新创建。例如:
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的已经创建。拉将尝试合并master和master- old。所以这通常不是一个好主意,除非您得到之前签出存储库的每个人的合作。
master- old
注意:较新版本的 Git 默认不允许远程删除 master 分支。您可以通过将receive.denyDeleteCurrent配置值设置到远程存储库warn或ignore在 远程 存储库上来覆盖它。否则,如果您准备好立即创建新的主节点,请跳过该git push remote :master步骤,然后--force转到该git push remote master步骤。请注意,如果您无法更改远程的配置,您将无法完全删除 master 分支!
receive.denyDeleteCurrent
warn
ignore
git push remote :master
--force
git push remote master
此警告仅适用于当前分支(通常是master分支);可以如上所述删除和重新创建任何其他分支。