将其他分支设置为master分支
一、使用场景
在实际业务中,经常会多版本维护,有时候将新功能不断往发版分支上,导致master主分支好久没有维护,代码远旧于封板分支。这时候就想要把现在的master废弃,将封板分支设置成新的master分支。
二、操作步骤
本次我需要将pre_master设置为新的master分支。
1、将现在的master分支备份
万一操作不对,或者还想去原来的master分支上找东西,最好是先备份!
我是在idea上操作的,切换到master分支以后拉最新代码,新建branch ‘backup_master_20201216’后push到远端仓库。

当然,也可以用命令:
#创建并且切换到分支:
git checkout -b backup_master_20201216
#此命令相当于两步:
git branch backup_master_20201216
git checkout backup_master_20201216
然后推送到远程仓库
git push --set-upstream backup_master_20201216
2、切换到pre_master拉最新代码
git checkout pre_master
git pull
3、把本地的pre_master分支强制(-f)推送到远端master
git push origin pre_master:master -f
备注:我在执行在这个命令时遇到问题:

说我没有force提交的权限?那去仓库配置里看看:

master做了限制,点击黄色按钮先把保护规则删除即可。
4、切换到旧分支master
git checkout master
5、下载远程仓库最新内容,不做合并
git fetch --all
6、把HEAD指向master最新版本
git reset --hard origin/master
三、通知大家伙儿
上述方式是直接把master分支覆盖为pre_master分支的代码,所以第一步的备份尤其重要!
酝酿了好久,终于把通知信息编辑好了,发出去,万事大吉。

最终回复“收到”的,寥寥无几。
本文主要参考:
git强制覆盖master分支

这篇博客介绍了如何在Git中将预发布分支pre_master设置为新的master分支,包括备份当前master分支,切换并更新pre_master,强制推送至远程master,以及后续的恢复和通知流程。
2390

被折叠的 条评论
为什么被折叠?



