git解决错误提交分支

[master] ... 0 - (1) - (m1) - 2 - (3) - 4
              \
[develop]      5 - 6 - 7

说明: 带括号的都是错误的commit,m1是merge提交,每个数字代表commit和commit号 需要放到develop分支

我的做法(目前看来没问题,不确定是否正确):

git checkout master
git pull
git diff 0 1 > patch1    (这两步的主要想法是物理备份一下,万一改乱了,还有个修改记录)
git diff 2 3 > patch2

git revert m1 -m 2    (这样直接会将1 和 m1产生修改的所有文件反转)
git revert 3

此时,分支状态是:

[master] ... 0 - (1) - (m1) - 2 - (3) - 4 - rm1 - r3
              \
[develop]      5 - 6 - 7

然后将错误提交应用到develop上

git checkout develop
git pull

git cherry-pick 1
git cherry pick 3
(进入merge按照提示解决、继续)

此时分支状态是:

[master] ... 0 - (1) - (m1) - 2 - (3) - 4 - rm1 - r3
              \
[develop]      5 - 1 - 6 - 7 - 3    (这里看commit的时间,进行的排序)

以上是大概记录

参考资料:

转载于:https://my.oschina.net/kidou/blog/1631507

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值