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

网上搜了一下,但是真正自己使用起来却又暴露出各种问题。因此,做如下总结分享,希望对遇到同样问题的人用帮助。

场景一:master下有a.txt文件,develop下有a.txt(和master保持一致),b.txt文件(追加文件),c/c.txt文件(追加文件夹和文件)。
场景二:master下有a.txt文件,develop下有a.txt(追加自己内容),b.txt文件(追加文件),c/c.txt文件(追加文件夹和文件)。
场景三:master下有a.txt文件(追加自己内容),develop下有a.txt(追加自己内容),b.txt文件(追加文件),c/c.txt文件(追加文件夹和文件)。其中master的a.txt和develop的a.txt不存在竞合。
场景四:master下有a.txt文件(追加自己内容),develop下有a.txt(追加自己内容),b.txt文件(追加文件),c/c.txt文件(追加文件夹和文件)。其中master的a.txt和develop的a.txt存在竞合。

网上查找了一个操作步骤,如下:

1. 切换到develop分支下,并保证本地已经同步了远端develop的最新代码

git checkout develop
git pull

2. 把本地的develop分支强制(-f)推送到远端master

git push origin develop:master -f

3. 切换到旧分支master

git checkout master

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

git fetch --all

5. 把HEAD指向master最新版本

git reset --hard origin/master

再执行上面的场景三和场景四,顺利执行完,切换到sourcetree上面,也不会再提示有竞合需要手动merge的操作,也没有需要你push和pull的东西,完美。

分析上面的操作,虽然核心操作是步骤2,因为经过步骤2,远端的master已经被你用develop强制替换了,目的是达到了,你完全可以在本地另起一个路径再clone一份master进行管理。

但是,在经过了改良后的操作后,你完全可以不丢弃已经使用很习惯了的路径,何乐而不为呢。再说改良后的修正点核心思想:就是获取远端的GitHub文件信息,而不做合并,然后直接丢弃本地旧的代码,直接获取远端分支的代码覆盖到本地,OK,问题解决,希望对大家有用。

转载:git强制覆盖master分支

git强制覆盖master分支相关推荐

  1. git强行覆盖master分支

    目录 我遇到的场景 需要注意的预备操作 操作步骤 我遇到的场景 1.master分支只为护较早的版本 2.由于业务不稳定,新业务和功能都在dev 分支上,dev的开发周期很长,一直变更迭代 3.从de ...

  2. git强制覆盖分支代码 A branch -- B branch

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

  3. git 回退远端master分支版本

    情景:脑残将自己分支上的内容合并到了master上面 需求: 将master分支还原到原来的版本. 方法: 1.  切换分支到master git checkout master 确认是否正确切换到了 ...

  4. 【Gitlab】GIT回滚master分支到指定tag版本 并提交远程仓库

    [Gitlab]GIT回滚master分支到指定tag版本 并提交远程仓库 1 查看分支 git branch 2 切换到master分支 git checkout master 3 查看标签 git ...

  5. Git - 强制覆盖本地代码[与远程仓库保持一致]

    1.应用场景 主要用于强制本地仓库与远程仓库保持一致. 比如: 本地某个仓库将代码回滚,然后强制推到 [git push -f] 远程仓库. //不推荐这种方式 另外一个仓库需要跟远程仓库保持一致. ...

  6. git merge覆盖当前分支

    git merge覆盖当前分支 有这么一种场景,我们需要merge某个feature分支到master分支,且希望合并后master分支与feature分支的内容完全一致. 当feature分支与ma ...

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

    VS2013中使用git发布解决方案master分支的时候出现错误 参考文章: (1)VS2013中使用git发布解决方案master分支的时候出现错误 (2)https://www.cnblogs. ...

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

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

  9. git 如何把master分支代码复制到自己的分支

    git 如何把master分支代码合并到自己的分支 1.先切换到主分支(master) git checkout master 2.拉取远程仓库的代码 git pull 3.切换到需要合并的分支 gi ...

最新文章

  1. Linux下三大最佳的开源视频播放器
  2. python设计一个学生类求最高分_设计一个学生类班级类
  3. c语言无效参数视为严重错误,C语言编译错误:错误:‘-’参数类型无效(有‘int’)...
  4. (算法)Word Break
  5. 如何自己亲手制作一个防疫地图?
  6. dbgrideh的功能
  7. python可以处理的文件类型_Python学习笔记之数据类型与文件处理
  8. python怎么让py里面逐行运行_[python]开发环境bug(求助)
  9. linux内核编译选项ccl,嵌入式Linux学习笔记(一)
  10. java子线程切换到主线程_Android子线程切换到UI线程方法总结
  11. 记一次被自己DDOS攻击
  12. pytorch加载模型报错RuntimeError: Error(s) in loading state_dict for ResNet:Missing key(s) in stat
  13. ASCII码对照表(emoji表情符号)
  14. 【项目管理案例】第九期:如何做好项目整合管理
  15. 【卷积神经网络】感受野
  16. 消息称暴雪代理谈判进入第二阶段,与四家中国代理商谈判
  17. C. 实验7-2-7 方阵循环右移
  18. Win7、Win8、Win10系统USB-Blaster驱动程序无法安装的解决办法
  19. 到底什么是幸存者偏差?有哪些例子?
  20. 温州大学c语言期末试卷,2016年温州大学物理与电子信息工程学院综合卷之C语言程序设计复试笔试最后押题五套卷...

热门文章

  1. 天翼云linux远程密码不对,天翼云主机远程连接
  2. tiny服务器系列,温州中学TinyWebDB服务器正式启用
  3. 项目选题-口罩识别检测系统
  4. Android面试整理
  5. 防止padding撑开盒子的方法
  6. 经典车间生产调度问题模型及其算法 目录
  7. 基于spring boot的奖助学金评审系统毕业设计源码031035
  8. Matlab如何删除矩阵中的零元素,重新整理不等行的矩阵
  9. 热带地区数据中心需要太阳能发电,而不是自然冷却
  10. python3web开发教程_三、Python web开发入门