删除origin/Master分支,提升origin/Develop为master

时间:2021-02-24 16:33:59

标签: git

放轻松 - 我是一名 QA,正在学习 Git!

这应该非常简单。我的存储库在 Bitbucket 中。

由于各种原因,我有一个分支 origin/master,现在包含旧代码。我在 origin/develop 有一个包含最新代码的。两者都有跟踪每个的本地分支机构。我不想合并它们。

我很高兴完全失去 origin/master(我将它克隆为“旧的”作为备份)并希望开发成为 master。

remote

建议通过终端执行此操作的 Git 命令是什么?

2 个答案:

答案 0 :(得分:0)

据我所知,重命名远程分支是一项危险的操作,因为无法直接重命名远程分支(除非您在远程仓库本身上进行重命名)。这意味着在 develop 分支上工作的所有开发人员都必须fetch 新的 master 并将其起点设置在他们的 develop 的尖端。然后他们可以删除他们本地的 develop 分支。对于这个解决方案,我假设没有人在研究 master

git branch -d master
git branch -d -r origin/master
git branch -d -r origin/develop
git branch -M develop master
git push -f -u origin master
git fetch origin develop
git push -d origin develop

我基本上是删除 master,以便我可以将 develop 重命名为 master。然后我强行(-f)推送新的master,我获取develop(它现在指向与master相同的提交)以便在之后立即远程删除它.为完整起见:如果有人一直在研究 master,那么使用 git push --force-with-lease -u origin master 会更安全。有关详细信息,请参阅 here

答案 1 :(得分:0)

Marco 给出了很好的答案,但我认为这不应该是您问题的本质。

看到您刚刚开始使用 Git 进行版本控制,我认为您应该问自己:“使用 Git 时我应该如何处理这些场景?”

答案不是“删除 master 分支并将其替换为 develop”。

使用 Git 的主要原因是能够保存您的历史记录。如果您到了要删除 master 分支的地步,您可能还想完全创建一个新存储库!

相反,为什么不简单地将 develop 合并到 master 中? 这样,你可以保存你的历史记录,最终结果是完全一样的。

如果您现在正在编写新项目的第一行,并且想要隐藏丑陋的历史并为您的项目创建一个新的石板,只需到您对 MVP 感到满意的程度并从头开始重新创建存储库步骤一步一步。你也会从这个过程中学到很多东西。它甚至可以帮助您了解最初应该如何做。

(专业提示:如果您是高级 Git 用户,我可能会告诉您只使用交互式 rebase 来重写 master 的历史记录)