有时候会遇到错误Merge的情况,这种情况需要使用-m参数。
如:
$ git log
commit
414b65a80446********8281c4479f01
Merge: eb027*****3268
Author: CHNuser <user@****.com>
Date: Wed Mar 4 14:46:27 2020 +0800
Merge branch 'feature/v*.*.1' of http://giturl into feature/v*.*.1
这个commit错误地合并了分支,需要撤销merge:
git revert -m {1 or 2} 414b65a80446********8281c4479f01
如果要revert到第一个commit,参数选择1,如果要revert到第2个commit,选择2.
在旧代码分支中被错误了引入了新代码的情况:根据情况选择
1.利用revert撤销
2.cherry-pick重新应用相关的commit。
可以考虑按照如下步骤处理,需要利用到git-bash:
- 先确认准确版本的Commit信息
- 根据新Commit的数量决定处理策略,有以下两种方式
- 直接用git revert撤销相关修改
- 用git reset hard会到指定commit,然后使用git cherry-pick命令应用相关修改
一般来说,commit的过滤可以参考如下方式进行。
git log --branches=*v2.0* --since 2019-03-26 --pretty=format:"%an %h %aD %s " --reverse |grep -i "panpan|tiantian"
再利用cut -d “ “ -f2可取得commit number。随后可利用xargs -n 1 进行批量处理了。
panxi@**** MINGW64 /d/Projects/projectname (feature/v1.1) $ git log --branches=*feature/v1.1_issues_p1* --since 2020-03-01 --pretty=format:"%an %h %aD %s " --reverse |grep -i "panpan" CHNpanpan 6ec***1f Wed, 4 Mar 2020 12:03:40 +0800 Feature #8858 CHNpanpan eb8***ba Wed, 4 Mar 2020 14:22:41 +0800 Feature #8858 CHNpanpan cb***2b4 Wed, 4 Mar 2020 15:10:23 +0800 Feature #8858 CHNpanpan 8f***bad Wed, 4 Mar 2020 17:54:05 +0800 fix 账户充值:如果存在未完成的钱包绑定,则不允许赠送 CHNpanpan 60***250 Wed, 4 Mar 2020 17:55:01 +0800 Merge branch 'feature/v1.1_issues_p1' of http://****** into feature/v1.1_issues_p1 CHNpanpan 0e***19b Wed, 4 Mar 2020 18:47:37 +0800 代码优化 CHNpanpan d***4fc Wed, 4 Mar 2020 21:08:24 +0800 fix Feature #8858 CHNpanpan 80***c5 Fri, 6 Mar 2020 12:46:01 +0800 fix 18854 CHNpanpan c7***db Fri, 6 Mar 2020 12:47:49 +0800 Merge branch 'feature_v1.1_issues_p1_pan' into feature/v1.1_issues_p1 CHNpanpan 8a***57 Fri, 6 Mar 2020 12:48:13 +0800 Merge branch 'feature/v1.1_issues_p1' of http://****** into feature/v1.1_issues_p1 CHNpanpan 5e***08b Fri, 6 Mar 2020 19:20:42 +0800 Bug #8974 CHNpanpan 0b7***3f Mon, 9 Mar 2020 13:24:28 +0800 update es setting panxi@**** MINGW64 /d/Projects/projectname (feature/v1.1) $ git log --branches=*feature/v1.1_issues_p1* --since 2020-03-01 --pretty=format:"%an %h %aD %s " --reverse |grep -i "panpan" | cut -d " " -f2 | xargs -n 1 6e***21f eb***fba cb***2b4 8f***ad 60***250 0e7***19b d1***4fc 80***c5 c7***db 8***57 5e***8b 0***3f $ git cherry-pick 6e***21f #如果有冲突,需要处理之后 git add && git commit $ git push