如何在master分支中回退中间的B1、B2提交?
最优方案:使用
git revert 批量撤销指定提交 由于master是已公开的共享分支,直接修改历史(如git reset)会给其他协作者带来同步问题,而git revert通过创建新提交来抵消目标提交的改动,既安全又无需繁琐的cherry-pick操作,是这类场景的最优选择。
具体操作步骤
- 先确保本地
master与远程同步:git checkout master git pull origin master - 批量撤销B1和B2提交:
直接传入两个提交的哈希值,Git会自动生成对应的撤销提交:
若撤销过程中出现冲突,解决冲突后执行git revert <B1提交哈希> <B2提交哈希>git revert --continue;若要终止操作,执行git revert --abort。 - 将新生成的撤销提交推送到远程
master:git push origin master
方案优势
- 无需回退历史再重新挑选提交,操作流程极简
- 保留完整提交轨迹,便于后续追溯问题,也不会干扰其他协作者的本地分支
- 针对已公开分支的场景,完全符合Git协作的最佳实践
内容的提问来源于stack exchange,提问作者Danny Kim
相关产品推荐
相关产品推荐

