revert与reset

本文探讨了在Git中错误地将测试分支合并到主分支后,如何使用reset和revert策略进行回滚。详细解释了两种方法的优缺点及应用场景,帮助读者理解如何在不破坏历史记录的情况下撤销错误的合并。

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

1、场景

错误的将不该和并的分支合并了上去

 

2、例

test为正在测试的新功能分支,操作人错误的将test分支合并到了主分支master,此时希望将test的分支提交回滚

 

3、策略

  1. 撤销此次的提交 reset
  2. 提交一次新的提交反向撤销本次提交 revert

4、问题

  1. reset

可能因在发现之前,mater上已执行了多次的提交,如下所示:

. . . commit1 commit2 commit3 testCommit commit4 commit5 ...

此时若想撤销此次提交,那么我们需要将提交回滚到testCommit 之前的状态(commit3),reset操作将完全舍弃testCommit至最后的所有提交,若想保留之后的提交,需重新合并

2. revert

revert操作并不会撤销原来的提交操作(即testCommit 提交依然是一个有效的提交),其将创建一个新的提交,其内容将反向撤销testCommit 所提交的内容,但是,此时git的head是一直往前的,也就是说,再对test 分支向master分支提交将没有任何内容可以进行提交,提示此时的master已经是最新的代码(虽然此时test分支的内容在master上完全没有),那么这个时候只需要对revert的操作再进行一次revert操作,即可以将原来revert的内容复原,在此基础上,重新合并新的内容即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值