开发工具: git 12、远程和本地同时撤回分支合并操作

git合并分支,并且push到远程后的撤回 场景 a同学,需要将自己的分支abranch合并到master上,并且提交到了线上,忽然发现存在问题,想进行撤回。 解析 两种方法撤回 #1.git revert 好处,记录撤回前的操作。缺点,如果存在两个或多个父分支不能恢复。 git revert 要撤回的版本号 git push origin 分支 # 2.git reset --hard,记录中删除了提交过的记录。 git reset --... 阅读详情

git merge --abort

使用场景:如果两个分支 merge 时出现了冲突,临时打算取消 merge

git reset --hard head^

使用场景:如果仅仅是在本地完成了 merge 后想要撤回,可以直接将分支挪回 merge 之前的 commit

推送到远程仓库之后想要撤回

比如说,release 分支进行 QA 测试,测试通过之后会合并到 master 分支,准备进行预发布测试和上线

虽然此时你的仓库的代码都合并到了 master,但是由于服务 A 依赖于其他团队开发的服务 B,而且往往是在不同的仓库里的两个项目。负责服务 B 的小组突然发现在 QA 环境临时测试出来了一个大 bug,此时 pm 沟通了一下,评估了一下风险,决定今天取消上线,下周再上。

你的代码都合并到 master 分支了但是说不上线了,此时你是不能将不准备上线的代码留在 master 分支里的。因为如果你有其他需求在最近一两天也要上线,那也是要合并到 master 分支,如果那个需求要上线的话,master 分支会把你的那个不准备上线的功能的代码给带上线。这种情况是不能接受的!必须将本次 merge 的代码给撤回,无论是本地的还是远程的。

如果 push 到了远程仓库以后是不能在本地 reset 一下后再 push 的,因为那样会搞乱提交历史

比如此时的工作区代码如下:
91
master 的 log 如下:
86
李四将本地特性分支的代码推送到远程,merge 到 develop/001 分支,测试基于该分支拉取 release/001 分支进行测试,测试通过后 merge 到远程 master。
85
此时 master 的 log:
87
此时要求远程 master 从 767 回退到 928

#在本地
git revert -m 1 head

输入该命令后会进入编辑页面,直接保存退出即可。此时的 git tree:
88
此时再将本地的 master 退到远程的 master 即可将本地和远程的 master 都回退一次 commit。
91
从而可知,git revert 实现的效果,不是将指针往回挪动而是创建一个新的 commit。对应的代码版本跟合并之前的那个 commit 是一模一样的

衍生的问题

如果再次执行 git merge feature/001,会发现 git 不允许 merge 了。

过了一段时间后 feature/001 分支的功能已经准备好可以上线了,此时需要重新将 release 分支的代码合并到 master 分支上来,但是如果将 release 分支申请合并到 master 分支,也会发现代码并没有什么改变,不允许 merge 到 master。

这是因为 afcd281 之前的 commit,即 76714e7 是通过 merge 了 ·92809fe和 b682787 得到的,git 默认 afcd281 此时是一定含有 b682787 分支的代码的。所以 git 是不会允许你合并的。虽然由于做了 git revert -m 1 HEAD 操作,导致 afcd281 的代码此时和 b682787 的代码一样。

如果 release 分支上又和并了新开发的 commit,在将此时的代码 merge 到 master 分支时,尽管可以将此时做了修改的代码合并到 master 分支,但是仍然不会将在 b682787 commit 时修改的代码合并到 master 上。因为 git 同样认为此时的 master 分支已经包含了 b682787 commit 的代码。
94

而实际上,是想将 afcd281、b682787、a3bddcf 的代码都合进来。

此时需要对本地的代码再次执行

git reverst head

a90 的 commit 是对 afc 的还原,它的代码是和 767 一样的,也就是说此时 a90 的代码是包含了 f928 和 b68 的,此时再次将 release 的代码合并到远程的 master,即 a90 时,新得到的 commit 就会包含了 b68 的代码。

95

而且此时一般还要在 feature 分支上继续修改代码,比如又加入了一些代码。但是如果这个时候胡乱再次合并,会发现 master 分支仅仅 merge 进去了 feature 分支后来修改的那一点代码而已。 此时,要做的事情是继续对feature 分支进行修改,完成最终版本的代码。然后再次执行 git revert HEAD,将 master 分支再次进行revert,回退到之前 merge 过后的那个状态,这个状态是包含了 feature 分支 merge 进来的部分代码的,然后再次执行 git merge feature/001 ,将 feature 分支最新的修改也 merge 进来

总结

如果在本地做了 commit,同时还推送到了远程仓库,此时要撤回

直接 git revert HEAD 回到上一个commit的状态,然后再次 git push origin master,即可同步撤回远程仓库的commit 操作

如果是要撤回已经 push 到远程仓库的 merge 操作

在本地执行 git revert -m 1 HEAD 和 git push origin master,此时本地和远程的提交历史都会多一个 commit 出来,该 commi t的内容和合并之前的 master 指向的那个 commit 是一样的,同时 master 此时指向最新的那个 commit

如果后续要再次将 release 分支和 master 分支进行合并

再次在本地执行 git revert HEAD 和 git push origin master。即再次将 master 还原到指向一个新的 commit,该 commit 的内容与上一次 merge 后的那个 commit 一样,包含 merge 的内容。然后再次将 release 分支与 master 分支进行合并,此时可以保证 release 分支所有的内容都合并到了 master 分支

git实现多人协作开发同一个项目 如果你已经提交了代码,但想撤回这次提交,可以使用git reset或git revert命令。 阅读详情

相关推荐

MATLAB实战:四桥臂逆变器3D-SVPWM调制算法仿真全流程(附代码)

本文提供了一份完整的MATLAB/Simulink实战指南,详细解析了四桥臂逆变器的3D-SVPWM调制算法仿真全流程。文章从工程实践出发,手把手指导如何搭建模型,涵盖从abc静止坐标系变换、三维空间矢量区域判定、作用时间计算到PWM信号生成与调试等核心环节,并附有代码示例和常见问题解决方案,旨在帮助工程师快速掌握这一应对不平衡负载的高效调制技术。

qsc90123456的博客 233

Git实战技巧-如何同时撤回远程和本地分支合并操作

如何同时撤回远程和本地分支合并操作

Ares_Yin的博客 2043

【全开源】旅行吧旅游门票预订系统源码(FastAdmin+ThinkPHP+Uniapp)

此外,系统还会根据我的旅行计划和喜好,为我推荐合适的景点和门票,让我的旅行更加丰富多彩。旅游门票预订系统的出现,不仅简化了门票预订的流程,还提高了旅行的便捷性和效率。一款基于FastAdmin+ThinkPHP+Uniapp开发的旅游门票预订系统,支持景点门票、导游产品便捷预订、美食打卡、景点分享、旅游笔记分享等综合系统,提供前后台无加密源码,支持私有化部署。如今,有了旅游门票预订系统,这些问题都能迎刃而解。智能推荐:系统还会根据你的旅行计划和喜好,为你推荐合适的景点和门票,让你的旅行更加丰富多彩。

2401_84413757的博客 1301

GIT撤销远程MERGE

GIT撤销远程MERGE 关于GIT撤销,网上有很多教程,基本都提到RESET或者REVERT,等我们自己按照教程搞的发现搞不了。我也跟大家有同样的困惑,这里把这个问题详细的说明一下。 方法一 通过RESET撤销 我用的工具是TortoiseGit,当然还可以用SourceTree,IDE的GIT插件等等,甚至命令行。 1.找到要重置的提交,reset到当前分支 这一步做完其...

wjf8882300的专栏 6093

全网首发!Yolov8_obb旋转框训练、测试、推理手把手教学(DOTA1.0数据集map50已达80%)

其中,images/train和images/val放置原始图片文件,labels/train_original和labels/val_original分别放置原始的标签文件,labels/train和labels/val为空,然后运行步骤(3)的代码,运行结束转换后的标签会保存在labels/train和labels/val中,格式如下。(4)新建yolov8-obb.yaml,修改nc和scales,我使用的是yolov8n.(2)构建数据集,安装下面目录格式,其他test可为空,一定要对应。

小嘤熊的博客 2万+

基于RK3588与FPGA的SDI视频处理系统:从MIPI CSI-2输入到DSI输出的全链路解析

本文深入解析了基于RK3588与FPGA的SDI视频处理系统全链路。系统利用FPGA作为高速接口转换与流管理核心,将SDI信号转换为MIPI CSI-2数据流送入RK3588进行智能图像处理与AI分析,处理结果再通过MIPI DSI回传,最终由FPGA控制编码为SDI输出,实现了专业视频接口与强大算力的高效协同。

s1t2u3的博客 666

Git中如何撤销已推送到远程仓库的提交?

使用git revert:创建一个新的提交来撤销指定的提交,保留历史记录。使用git reset:重置分支到指定的提交,重写历史记录。使用:撤销最近的一次提交,保留工作目录中的更改。使用git revert撤销多个提交:创建一个新的提交来撤销多个连续的提交。使用:撤销合并提交。选择合适的方法取决于你的具体需求和团队的工作流程。希望这些信息对你有所帮助!

qq_33240556的博客 3299

STM32 BLDC无刷电机霍尔信号捕获与换相控制实战解析

本文深入解析了STM32如何实现BLDC无刷电机的霍尔信号捕获与换相控制。详细阐述了硬件接口配置、定时器霍尔传感器模式的使用、抗干扰的滤波器与软件容错设计,以及中断服务与换相逻辑的实战代码。重点解决了信号抖动、换相不准等常见问题,旨在帮助开发者构建稳定可靠的电机驱动基础。

weixin_29193259的博客 366

git进阶(撤销pull、撤销merge、撤销add)

1、撤销本次pull git reflog reset到某个版本 git reset --hard 91ae6ad 2、撤销本次merge 如果merge了其他分支代码造成了大量的冲突 想撤销本次merge如果操作 1、使用上面的reset命令撤销到上一个提交版本 2、执行以下命令直接撤销了本地合并 git merge --abort 3、git log高阶用法 查看每次提交的文件修改列表,和分支变化的图形信息 git log --name-status --oneline --grap

https://www.xiaohongshu.com/user/profile/5f3543150000000001002b2e 1万+

华为od统一考试B卷【宜居星球改造计划】Java&Go 实现

XXX年,人类通过对火星的大气进行宜居改造分析,使得火星已在理论上具备人类宜居的条件,由于技术原因,无法一次性将火星大气全部改造,只能通过局部处理形式,假设将火星待改造的区域为row * column的网格每个网格有3个值,宜居区、可改造区、死亡区,使用YES、NO、NA代替,YES表示该网格已经完成大气改造,NO表示该网格未进行改造,后期可进行改造,NA表示死亡区,不作为判断是否改造完成的宜居,无法穿过 初始化下,该区域可能存在多个宜居区,并且每个宜居区能同时在每个太阳日单位向上下左右四个方向的相邻格子进

MISAYAONE的博客 1万+

2021.07.05【R语言】丨预测lncRNA并绘制venn图

目录摘要环境与方法依赖工具预测工具绘制工具使用命令预测lncRNA统计noncoding_ID绘制Venn图结果展示总结 摘要 接到一个单样品测lncRNA数据的项目,正好拿来练练手,梳理一下lncRNA流程。这里记录预测lncRNA并生成venn图的过程 环境与方法 R version 3.6.3 (2020-02-29) 依赖工具 预测工具 CPC2 CNCI Pfam CPAT 绘制工具 R:VennDiagram 使用命令 预测lncRNA CPC2 #更换env conda activate py

2035

git撤销分支合并的代码

git撤销分支合并的代码

IT之一小佬的博客 2万+

使用cmd命令查看电脑是不是翻新机 如何查看自己电脑是不是翻新机

最近pdd啥的百亿补贴啊,什么品牌店啊,很多“假一赔十”,绝对“正品”都蹦出来了,很多人拿到以后,也上网查了各种鉴别方式,包括区分是不是翻新机之类的。本人亲自踩坑“pdd品牌店”,“假一赔十”,“绝对正品”等店铺,跟大家分享一下我得鉴别经验(说道分享鉴别经验了,大家也就不用好奇了,我肯定是买到翻新机了,mmp)。 第一步:准备好手机,开始录屏,没有完整的拆箱视频,可能不容易退货退款 第二步:拆箱,查看屏幕划痕(用手机闪光灯看,要不然看不清),然后查看屏幕有没有被擦过的痕迹 第三步:查看USB孔等插口有没有划

weixin_39417324的博客 1万+

Git:使用Git进行合并分支操作

git合并、创建分支操作

永远保持随时离开的技术能力! 3万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

git本地获取远程分支

一、查看分支 git branch 查看本地分支 git branch -a 查看所有分支列表,包括本地和远程,当前分支的前面用*标记,远程分支一般会用红色字体标记出来,带有remotes/origin/分支名 二、新建本地分支 git checkout -b 新分支名 git checkout master //切换到master分支 git merge hotfix //将hotfix分支上的修改合并到master分支上 执行该指令后,会在本地创建一个新分支,该分...

qq_32615575的博客 1万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

git实战技巧(1)——如何同时撤回远程和本地分支合并操作

Git是分布式版本控制系统(Distributed Version Control System,简称 DVCS),分为两种类型的仓库: 本地仓库和远程仓库

技术专家 1041

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

git 新建分支、合并分支和撤回push操作

git 新建分支 // 查看当前所在分支 git branch // 创建本地分支并切换到新创建的分支 git checkout -b dev // 再次查看所在分支 git branch // 将新创建的分支信息推送到远程 git push origin HEAD -u **git拉去合并分支后的代码** // 切换到自己的分支 git checkout <branch name> // 拉取最新代码 git pull origin <最新代码分支名> // 重新

luckydog 1983

远程和本地同时撤回分支合并操作

见开发工具: git 12、远程和本地同时撤回分支合并操作_github_39353936的博客-优快云博客_git 撤销本地合并

qq_52285743的博客 7155

git实战技巧-如何同时撤回远程和本地分支合并操作

1.解决思路  (1)如果正在合并代码解决冲突中  ```  git merge --abort 取消代码合并  ```  (2)如果合并完毕并commit提交到了本地仓库  ```  git reset --hard HEAD^ 回退到上一个版本  后面的选项有四种:  --mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。  --hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提

zy1992As的博客 1620

【git】git常用操作--克隆/提交/合并/撤回/修改分支名/同步多个远程库

git常用命令。默认克隆的master分支,如果克隆一个非master分支,加上。将暂存区内容添加到本地仓库中。

lillianqdzpw 3398

idea git 同步 撤回 本地分支/远程分支版本(超详细)

首先将HEAD头签出至本地分支(例如:master),不可将HEAD头签出至某个修订版本,将导致HEAD游离无法进行撤销等功能操作。在Git管理中,选中想要撤回至哪一版本,右键点击所选版本,选择“将当前分支重置到此处”举例:将本地/远程均撤回至“工作台业务功能代码开发”3.选中“硬/Hard”重置(请先理清Soft/Mixed/Hard区别)。将此版本后需保存的代码/文件提前保存,以防丢失。

weixin_73727639的博客 1533

Git合并分支的流程步骤

正常合并分支dev到master流程: 1、要合并的dev分支先更新提交所有文件 进入项目根目录,然后执行: git add . git commit -m '提交所有dev分支的文件' git push -u origin dev 2、切换到master分支 git checkout master 3、更新master代码到最新 git pull origin master 4、把dev(你要合并到master的基分支)分支的代码合并到master上 git merge dev 5、查看状态 gi

一掬净土 9791

Git自己分支合并dev分支

Git自己分支合并dev分支 全流程git 合并代码步骤,需要保证自己本地分支和dev分支都为最新代码,保证不会丢失代码。 注意:此时此刻,自己的分支是旧代码(新开发的代码也在),dev分支是最新代码 一、步骤 1、git push 自己分支 2、git checkout dev 切换到dev分支 执行git pull (拉取dev最新代码) 3、git checkout 自己分支 执行 git merge dev (合并dev代码,解决冲突,此刻自己分支代码是最新的) 4、git push 5、git c

weixin_46016219的博客 1万+

令人窒息的GIT操作,冲突,合并,分支,版本?

前言:最初接触GIT是因为GITHUB,当时想在GITHUB上传一些自己的代码,然后开始慢慢了解到GIT,后开进入公司做项目开始再一次开始接触到GIT,然后一路头疼到现在,如果再不好好了解一下,会影响到自己的工作,所以找时间来整理一下思路。 一、为什么会有GIT? 如果你用Microsoft Word写过长篇大论,那你一定有这样的经历: 想删除一个段落,又怕将来想恢复找不回来怎么办?有办法,...

congweijing的博客 2571

Git切换分支(创建本地分支,远程分支,合并分支代码)

每天记录一点点

weixin_42133138的博客 8565

git 合并分支撤回

git merge某分支到目标分支上,发现冲突太多合并代码出问题了想要回退这次提交怎么办?

shenzy 1万+
上一篇: 开发工具: git 11、对本地刚做出的修改、暂存和提交进行撤回
下一篇: 开发工具: git 13、使用二分法查找哪一次提交引入了线上bug
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值