Loading

Git强制覆盖master

场景

由于公司的项目中,有一个开发分支(这里假设dev​)是一个严重偏离master​,需要我去强制覆盖master​。

问题

这个场景带来了两个问题:

  1. master​是受保护不能强推
  2. dev​分支是一个严重偏离master​的分支,无办法先合并到master​再正常推送,因为会有大量的冲突

解决

虽然无法合并进入master​,但是这个开发分支是可以直接覆盖远程的master​的。经过调研,这里记录下解决步骤:

1. 解开master分支的保护

以gitlab为例,默认是不允许对master分支强推的,所以我们在开始前先对master分支暂停保护。


2. 执行命令

// 备份master
git checkout master
git checkout -b master-backup

// 重置并强推master(强推前解开master的保护)
git checkout dev
git checkout master
git reset --hard dev
git push -f

git reset --hard branch //可以重置到指定分支的最新提交记录上

posted @ 2022-12-09 16:03  SimonLiang20  阅读(1548)  评论(0编辑  收藏  举报