Git强制覆盖master
场景
由于公司的项目中,有一个开发分支(这里假设dev)是一个严重偏离master,需要我去强制覆盖master。
问题
这个场景带来了两个问题:
-
master是受保护不能强推 -
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 //可以重置到指定分支的最新提交记录上

浙公网安备 33010602011771号