git操作——将其他分支设置为master分支

将其他分支设置为master分支

  • 一、使用场景
  • 二、操作步骤
    • 1、将现在的master分支备份
    • 2、切换到pre_master拉最新代码
    • 3、把本地的pre_master分支强制(-f)推送到远端master
    • 4、切换到旧分支master
    • 5、下载远程仓库最新内容,不做合并
    • 6、把HEAD指向master最新版本
  • 三、通知大家伙儿

一、使用场景

在实际业务中,经常会多版本维护,有时候将新功能不断往发版分支上,导致master主分支好久没有维护,代码远旧于封板分支。这时候就想要把现在的master废弃,将封板分支设置成新的master分支。

二、操作步骤

本次我需要将pre_master设置为新的master分支。

1、将现在的master分支备份

万一操作不对,或者还想去原来的master分支上找东西,最好是先备份!
我是在idea上操作的,切换到master分支以后拉最新代码,新建branch ‘backup_master_20201216’后push到远端仓库。
git操作——将其他分支设置为master分支_第1张图片
当然,也可以用命令:

#创建并且切换到分支:
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

备注:我在执行在这个命令时遇到问题:
git操作——将其他分支设置为master分支_第2张图片
说我没有force提交的权限?那去仓库配置里看看:
git操作——将其他分支设置为master分支_第3张图片
master做了限制,点击黄色按钮先把保护规则删除即可。

4、切换到旧分支master

git checkout master

5、下载远程仓库最新内容,不做合并

git fetch --all

6、把HEAD指向master最新版本

git reset --hard origin/master

三、通知大家伙儿

上述方式是直接把master分支覆盖为pre_master分支的代码,所以第一步的备份尤其重要!
酝酿了好久,终于把通知信息编辑好了,发出去,万事大吉。
git操作——将其他分支设置为master分支_第4张图片
最终回复“收到”的,寥寥无几。

本文主要参考:
git强制覆盖master分支

你可能感兴趣的:(java后端,git,java,github)