引子
开发项目是有个大的重构,于是重新建了一个 dev 分支,之后将重构以及迭代的代码放在了 dev 分支上。但是在重构期间为了 hotfix 一些老版本的 bug,在 master 上做了一些修改。如此一来 master 和 dev 产生了大的分叉。由于开发者就两个,并且我太懒,不想将 dev merge 回去解决大量冲突。
于是乎,该怎么覆盖呢?
作者:青藤木鸟 Muniao's blog 转载请注明出处
解决
在 Stack Overflow 上搜索一番得到如下命令:
# rename master on local
git push origin :master
但是在第二步 git push origin :master 会报错 :
[remote rejected
原因在于对 gitlab 对于默认分支 master 有保护。只需要在 gitlab 页面左侧边栏:Settings->Repository->Protected Branches 中将 master 的保护暂时去掉,改完后加回来就行。
小结
总结来说,就是:
- 在 gitlab web 配置页面中去掉 gitlab 中对 default 分支的保护。
- 备份 master 为 master-bak 并推送到远程仓库。
- 删除远程 master,在本地复制 dev 为新的 master 分支,然后将其推送到远程仓库。
- 在 gitlab 中配置页面中将 master 保护加回来。