在把个人分支合并到主分支master后 如果个人分支开发的内容有bug 通常需要回滚合并 假设个人分支 myString_master是A分支 master是B分支
这时候需要找到合并的提交记录的git哈希值 通过git log找到该笔提交的哈希值 然后通过git show <merge_commit_hash> 命令 查看该分支详细
其中mrege行有显示A跟B两个分支的父提交 在通过git show命令 找到master的父提交是哪个哈希值 示例中6526086f2的是master的父提交。
想要回滚到合并之前的状态 需要执行git revert -m 1 <
commit_hash> 其中 1代表6526086f2 是B分支的父提交 commit_hash是合并分支 也就是图下这笔提交的哈希值 (如果是2 就代表保留A分支的修改)
执行完该命令后 git会新增一笔逆转提交 会把个人分支A的所有修改做一次逆向修改 达到撤回合并的效果
举例说明 比如A分支有提交DEF B分支有提交ABC 此时新增合并提交M 假设此时master的提交记录为ABDCEFM
在执行git revert -m 1 <
commit_hash>命令后
Git 会生成一个新的提交 R(逆向提交),该提交会撤销 M 引入的所有更改,同时保留 B 分支的主线内容。 此时master的提交记录为ABDCEFMR 但实际上代码中只保留了master B分支的ABC提交的代码内容 DEFM做的修改会全部撤回