我遇到的场景

1、master分支只为护较早的版本

2、由于业务不稳定,新业务和功能都在dev 分支上,dev的开发周期很长,一直变更迭代

3、从dev 分支切出来的小分支都先合并到的了dev,master分支很少合并。这就造成后来发版本大部分代码都在dev上,dev分支上目录解构和工程中的配置和master分支相比都有很大改变。

4、dev分支打的包已经上了生产。

鉴于这种情况,干脆直接把dev覆盖到master上。

需要注意的预备操作

当然,做这种操作还需要考虑安全问题和其他同事的建议。确保大家口径统一。

一般情况下,master分支是受保护的,没有权限的人员是不能随便合并分支,更不可能随随便便把它给覆盖了。

所以第一步是到仓库配置里先把受保护关闭

setting -> repository -> Protected Branches ->master 【unprotected】

记得覆盖完后要重新将master保护起来

记得覆盖完后要重新将master保护起来

记得覆盖完后要重新将master保护起来

不然会因为没有权限而报错

Total 0 (delta 0), reused 0 (delta 0)
remote: GitLab: You are not allowed to force push code to a protected branch on this project.
To http://gitlab.pab.com.cn/xxx.git
! [remote rejected] dev -> master (pre-receive hook declined)
error: failed to push some refs to 'http://gitlab.pab.com.cn/xxx.git'

操作步骤

1、可以在一个新文件夹里把工程克隆下来

假设 你远端有一个master 分支 有一个 dev分支

git clone -b dev yourRepositoryUrl
git pull

2、把本地的dev 分支强制推送到远端 master

git push origin dev:master -f

3、切换到旧分支master

git checkout master

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

git fetch --all

5、把HEAD指向master最新版本

git reset --hard origin/master

参考

git强行覆盖master分支的更多相关文章

  1. Git强制覆盖master分支

    在开发中,通常会保持两个分支master分支和develop分支,但是如果因为develop上面迭代太多而没有及时维护master,最后想丢弃master而直接将测试确认过的develop强推到mas ...

  2. dev分支代码覆盖master分支代码

    将develop分支上的代码完全覆盖master分支, 1. 切换到master分支 git checkout master 2. 执行以下命令 git reset --hard origin/dev ...

  3. VS2013中使用git发布解决方案master分支的时候出现错误

    VS2013GIT基础用法请自行参考:不会Git命令,照样玩转Git 环境:VS2013+ 码云错误描述:在VS2013中使用git发布解决方案master分支的时候出现“无法将本地分支 master ...

  4. git 如何把master分支代码合并到自己的分支

    master分支的代码领先自己的分支,git 如何把master分支代码合并到自己的分支 1.首先切换到主分支 git checkout master 2.使用git pull 把领先的主分支代码pu ...

  5. GIT回滚master分支到指定tag版本

    master版本上线以后一般要打一个tag备份,以防事态有变,这是一个好习惯,如果以后有问题也可以放心的回滚版本,那么怎么用tag版本覆盖mastaer呢,其实只有几个命令 1.查看分支 git br ...

  6. centos下安装最新版本git(通过master分支下载最新版)

    centos6.7下安装最新版本git 本文参考:http://www.01happy.com/centos-install-latest-git/ 按照原博主所提供的思路安装可能会出现下列问题 解决 ...

  7. 如何删掉git版本库master分支的第一个commit

    这个操作会将库清空,一般来说在建库开始的时候操作. 适用场景: git init初始化版本库之后,提交第一个点之后发现这个点出问题了,但是此时内心如果有洁癖的话, 你会觉得不完美,很想把这个点干掉重来 ...

  8. git 删除远程master 分支

    ➜  fekit-extension-yo git:(dev) git push origin :master remote: error: By default, deleting the curr ...

  9. git 同步非master分支

    在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致: 建立本地分支和远程分支的关联,使用gi ...

随机推荐

  1. 实现 RSA 算法之改进和优化(第三章)(老物)

    第三章 如何改进和优化RSA算法 这章呢,我想谈谈在实际应用出现的问题和理解. 由于近期要开始各种忙了,所以写完这章后我短时间内也不打算出什么资料了=- =(反正平时就没有出资料的习惯.) 在讲第一章 ...

  2. Deadlock_synchromized-Java_se

    class Test implements Runnable{ private boolean flag; Test(boolean flag) { this.flag = flag; } publi ...

  3. vue-搜索功能-实时监听搜索框的输入,N毫秒请求一次数据

    <template> <div class="search-box"> <input class="box" :placehold ...

  4. mybatis捕获sql工具

    今天给大家分享一款好用的软件 https://ssrss.space/register?aff=982689 日志级别必须是debug

  5. python多线程之threading、ThreadPoolExecutor.map

    背景: 某个应用场景需要从数据库中取出几十万的数据时,需要对每个数据进行相应的操作.逐个数据处理过慢,于是考虑对数据进行分段线程处理: 方法一:使用threading模块 代码: # -*- codi ...

  6. Delphi 数据类型

  7. 引用vector里的元素被删除后,引用会怎么样?

    引用的定义不多说,直接看做变量的别名就可以了.有一天写着写着代码,突然想到,如果对vector里某个元素设置引用后,将这个元素从vector里删除会怎么样?我思考了下,认为那个元素会被删除,但是引用还 ...

  8. 003-基于impi zabbix监控r720 测试过程

    1.F2进入服务器bios 修改network  使这台服务器能够被远程访问. 2.在远程的centos 7 服务器上安装  impitool工具包 #ipmitool -I lanplus -H X ...

  9. Codeforces 965 枚举轮数贪心分糖果 青蛙跳石头最大流=最小割思想 trie启发式合并

    A /*#include<cstring>#include<algorithm>#include<queue>#include<vector>#incl ...

  10. 说说关于洛谷P4779迪杰斯特拉的堆优化

    众所周知,这题必须要用堆优化的迪杰斯特拉的堆优化才能过,否则60分(错失一等奖) 我没有得过一等奖但还是要说: P4779 全过程: struct node//堆中的比较函数 { int dis; i ...