git merge合并分支代码后如何回退合并操作

文章讲述了开发者在新功能合并过程中遇到问题,需要回退代码。通过gitcheckout切换到目标分支,使用gitrevert命令及其参数-m1解决因merge产生的冲突,实现代码的回退并解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写在前面

  • 这次问题产生的原因还是自己操作过于急躁了,新功能开发完成之后没有实时的与经理沟通就进行了新功能分支合并的操作,导致当前版本部分功能由于没有同步产生了一些问题,因此需要把代码进行回退操作;
  • 但是分支代码修改了许多文件,并且已经推送到了远程仓库,手动一个个的对照远程仓库的提交记录进行代码还原显然不太合适(这是一种笨方法,但是也能解决,这里不这么处理);
  • 在查询git 相关指令后了解到了 git revert 命令,最终得以解决,下面介绍解决方式。

切换到合并源分支

  • 我这边的例子是将新功能分支 feature/dataQuality 合并到了 release分支
  • 所以我们这边切换到release分支
git checkout origin/release

git revert

  • 在编辑器中查看当时的提交记录,取出commit id, 同时确认一下当时修改的文件
    在这里插入图片描述
  • 这时候新建一个终端,敲入命令 git revert commit-id
  • git revert回退到指定commit, 是合并代码的反向操作,通过此命令生成新的commit提交记录,提交此记录来覆盖远端仓库的代码(本质就是拿到合并前的代码,然后把合并前的代码重新提交从而实现代码还原);于是我们执行如下命令
git revert 0bda23a5
  • 然后控制台就得到一串报错
error: commit 0bda23a5468b9ddca6aa63dc6bae783da577181c is a merge but no -m option was given.
fatal: revert failed
  • 报错原因:因为需要回滚的commit 是一个merge动作,需要显示给出-m(mainline)选择告诉git回滚具体哪一个mainline(取值为1 或 2)
  • 由于合并时是两个分支进行合并,我们这边没有指明是要哪条分支的代码;因此我们再次查看提交记录(编辑器中查看),你也可以使用命令git show 0bda23a5 来查看,截图如下:
    编辑器中查看
    git show commit-id
  • 根据
 commit 0bda23a5468b9ddca6aa63dc6bae783da577181c
 Merge: b287963c 9de004ff
  • 这样一来,根据我们当下的情况, git revert 0bda23a5 -m 1 (1标识的就是b287963c 也就是合并源即上述讲到的release分支)
  • 最终我们执行 git revert 0bda23a5 -m 1 后会发现现在代码提交处会生成一份新的提交记录,我们只需要将其再次提交即可解决问题

写在最后

合并远程分支,可以按照以下步骤进行操作: 1. 首先,确保你已经切换到本地的目标分支,使用命令git checkout [分支名称]; 2. 然后,从远程仓库拉取最新的代码,使用命令git pull; 3. 接下来,将待合并的远程分支合并到当前分支,使用命令git merge [远程分支名称]。此步骤可以将远程分支代码合并到当前分支; 4. 最后,将合并结果推送到远程仓库,使用命令git push。 具体的合并命令如下所示: ``` git checkout [目标分支] git pull git merge [待合并的远程分支] git push ``` 请根据实际情况将 [目标分支] 和 [待合并的远程分支] 替换为相应的分支名称。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [git合并远程分支](https://blog.youkuaiyun.com/qq_41180335/article/details/118002035)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Git合并远程分支及版本回退](https://blog.youkuaiyun.com/m0_37816134/article/details/120330780)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值