挖坑过程

有一个新功能开发,开始我先从master分支上拉一个新分支feature-plu-0528,新功能将在这个分支上开发。开发完成之后,我开始把我的开发分支feature-plu-0528,往测试分支上(dev分支)合并。结果就是把分支合反了,dev合到了我的分支,如图1。这样导致了什么结果,dev上很多其他人开发的代码,不管需要不需要上线的代码都合到了我的开发分支上,我的分支肯定就脏了,不能往master合并。怎么办,开始想办法填坑,首先有没有影响到别人,对dev分支有没有影响,因为操作记录显示dev合到了我的分支,我的分支又合到了dev,如图2,结果对其他分支没有影响。现在情况好点,大不了我的分支不要了,重新拉个分支重新把我的代码弄到这个分支。其时更好地方案是:只要把我的分支回退到合反之前的代码不就行了。我也不敢搞了,找大佬吧。

填坑过程

填坑1:找开发同事帮忙,怎么操作的,如图3,直接Revert commit,还有一些其他的,忘了,只说Revert commit,存在两个问题:1,这个东西什么作用,针对我的分支本次commit操作,进行撤销,仅仅是本次操作(判空)commit,对后面的分支合反了的代码,并没有回滚;2,而且我的开发分支远程的代码也是错误的,没有回退。

填坑2:怎么解决

1,回退我开发分支本地的代码

2,回退我开发分支远程的代码

方式1,使用命令

git reset --hard 回退地方的版本号 (回退本地代码)

git push -f  (强制将回退的代码push到远程)

方式2,使用页面操作,如下图及图5

回退本地

回退远程,也可以使用git push -f 方式

方式3,页面操作

回退本地,如下图,回退远程可用 git push -f 方式

综上三种回退方式,说白了是三种回退本地代码的方式,回退远程方式实际是两种

1,强制回退 git push -f

2,针对方式不足,请参考:https://www.cnblogs.com/luoa/p/11729856.html

回退后记录

意外情况

当我以为本地干净了,如上图,我想修改一个bug,取最新一条,提交代码是,竟然很多让我提交的代码,内容有回退的内容等,为什么?本地应该已回退,怎么有这些已commit未push的代码。

怎么解决:把我的开发分支恢复到与开发远程分支一致。能行吗:这样搞,我回退版本之前的代码不也没了,细想一下是有的,因为我之前开发的代码已经push到远程开发分支了。直接搞

>git reset --hard origin/feature-plu-0528

总结:

如果一个分支就一个人开发还好,如果多人在一个分支上开发,这样回退代码比较危险,你回退到某个版本,但是后面如果有其他人,也提交了代码,就会把其他人的代码也回退掉,这个坑就有点大。有没有更好的方法,我只回退我自己的代码,远程也是,不回退别人的代码?待续。。。

图1

图2

图3

图4

图5

图6

记录一次挖坑过程,idea git 代码分支合反了,如何补救相关推荐

  1. Git 代码分支管理 / 版本管理

    Git 代码分支管理 / 版本管理 在使用 Git 时,基本不可能只有一个分支. 即使只有一个人发开,也会考虑代码的安全而分多个分支.多人协同开发时,可能每个人在不同的分支开发,也可能不同团队在不同的 ...

  2. git将一个分支合入到另一个分支

    git将一个分支合入到另一个分支 将分支a合入到分支b 1.首先需要切到分支b,然后pull一下,使b分支代码与远程b分支代码一致:准备就绪,在b分支下创建一个新的分支async/a-to-b // ...

  3. 软件项目、产品版本号的命名规则、定义、命名规范(git代码分支版本、项目产品文档版本)

    文章目录 前言 一.关于对项目.产品版本的一些学习探索 问题:大家都是怎么样定义版本号的?(参考资料) 二.我在团队中是这是实践的 团队版本号实践 总结 前言 工作几年了,最近在总结项目.产品版本号命 ...

  4. git 代码提交过程

    一.git 代码提交过程 git log 查看git合入的记录 git pull从服务器重新拉代码,将本地代码更新为服务器上的最新代码 git status查看本地代码状态,是否有待提交的代码 git ...

  5. git 代码没了,git rebase 合并提交记录,git stash

    xx 问题 git合并提交记录 创建提交记录 合并提交记录 rebase有冲突 合并后的本地路径提交到远程 其中的参数 pick 改变提交 5.txt 和 4.txt 的顺序 删除某一个提交 rewo ...

  6. git删除所有历史提交记录,只留下最新的干净代码

    git删除所有历史提交记录,只留下最新的干净代码 1.Checkoutgit checkout --orphan latest_branch2. Add all the filesgit add -A ...

  7. git 代码记录单条合并的方法

    第一种方法 **步骤一:** 1,在开发分支 git log 找提交记录 找到要合并的记录一串编码**步骤二**: 2,切换到要合并的分支 例如:git checkout master **步骤三:* ...

  8. git合并分支导致代码丢失问题,记录勉励自己

    git代码丢失不要慌,只要你的代码经历过git add 基本都能找回来,之前代码合并时遇到代码丢失,切换回不到其他分支,一直提示"正在变基"解决方案: git 合并分支造成多余分支 ...

  9. Git 代码管理(代码提交和代码回退)

    Git 代码管理(代码提交和代码回退) Git的主要功能是代码管理,版本管理,分支管理. 在远程代码管理平台上,项目的代码被管理在一个远程代码仓库中,在本地,代码保存在一个本地代码仓库中.通过Git, ...

  10. Git 代码版本管理工具详解 进厂必备

    目录 前言 Git 概述 什么是版本控制? 为什么需要版本控制? 版本控制工具 集中式 分布式 Git 工作机制 Git安装 Git 常用命令(部分) 初始化本地库 设置用户签名 初始化本地库 查看本 ...

最新文章

  1. 使用Prometheus和Grafana实现SLO
  2. java bitset用途_BitSet的用法
  3. java反射机制详解_JAVA反射机制详解_JSP/Java编程_互联网开发技术网_传播最新的编程技术_php361.com...
  4. 前端面试题汇总(css基础篇)
  5. 源码安装apache, jre, tomcat
  6. 可控硅型号怎样识别_可控硅是什么_可控硅型号_可控硅分类及判别_可控硅种类...
  7. [BZOJ1031] [JSOI2007] 字符加密Cipher (后缀数组)
  8. BP神经网络预测模型
  9. Halo博客搭建及配套小程序使用教程
  10. c语言大小写字母变换,C语言学习:任意大小写字母转换
  11. ddl是什么意思网络语_DDL是什么意思?DDL跟数据库关系介绍 常见的DDL语句分享...
  12. super是不是java中的标识符_java关键字super和this是什么?有什么区别?
  13. 解决Error creating bean with name ‘redisConnectionFactory‘ defined in class path resource...问题
  14. 使用burp进行网站爆破
  15. 干货 | Elasticsearch 8.X 节点角色划分深入详解
  16. Android基础-1.指南说明
  17. 面试题之__分苹果(java实现)
  18. 什么是外键约束?外键约束下的多表操作是什么?
  19. 2016年美国数学奥林匹克竞赛试题
  20. sklearn—随机森林—预测一个人的月收入

热门文章

  1. 看完这篇文章你就清楚的知道 ZooKeeper的 概念了
  2. 《深度学习轻松学》-第8章优化与训练
  3. 补全aaz288 可能有问题的过程 P_COMPL_AAZ288
  4. 科技前沿---全息手机、全息图像
  5. 回不去原来是没有 实现这个 代理方法,
  6. OpenVAS安装说明
  7. IE应用商店与.net WPF浏览器应用
  8. C#自动属性及属性的简写形式
  9. 初体验这个平台很强大
  10. 拒绝Wakelock提高续航!安卓省电优化攻略