【发布时间】:2010-12-04 08:24:17
【问题描述】:
我有分支master,它跟踪远程分支origin/master。
我想在本地和远程将它们重命名为master-old。这可能吗?
对于跟踪 origin/master 的其他用户(并且总是通过 git pull 更新其本地 master 分支),我重命名远程分支后会发生什么?
他们的git pull 是否仍然有效,还是会抛出一个无法再找到origin/master 的错误?
然后,进一步,我想创建一个新的master 分支(本地和远程)。同样,在我这样做之后,如果其他用户现在这样做git pull,会发生什么?
我想这一切都会带来很多麻烦。有没有一种干净的方法可以得到我想要的东西?还是我应该保留master 并创建一个新分支master-new 并继续在那里工作?
【问题讨论】:
-
接受的答案中给出的配方确实适用于任何名称的分支,但由于 master Git 中的分支。
-
@kynan:我想我不明白。哪些注意事项适用于 master 而不适用于其他分支?如果它是一个名为 xy 的分支,并且其他人已经跟踪了该分支,那会有什么不同?
-
警告您不能正常删除远程主机。不过,这不适用于亚里士多德的答案,因此您可能希望将其标记为已接受的答案。你是对的,任何
git push -f都会影响从任何远程跟踪分支pull的能力。 -
您可以创建一个新分支
master-old,它指向与之前的master分支相同的提交。然后,您可以使用ours策略执行merge,用您的新更改覆盖master分支。当远程不允许非快进更改时,执行合并工作。这也意味着其他用户不会强制更新。 -
@kynan
master仅在它是唯一现有的分支时才特别。只要你有多个分支,所有分支都处于平等地位。
标签: git git-branch git-pull