Git双回滚如何保留原提交作者?
双回滚后保留原提交作者的轻量方案
场景
- 处于CI/CD企业环境,多团队变更持续合并到master分支
- 当合并提交存在bug时,需执行revert操作保障master分支的发布稳定性
- 修复故障特性时,第一步需执行「回滚回滚」操作,避免打乱master分支历史
问题
执行「双回滚」后,原特性的成百个多作者提交,全部显示为执行第二次回滚的人提交,丢失了原提交作者信息
限制条件
- Cherry pick操作复杂度高,不适用于大量提交
- 禁止向master执行force push,因此无法使用rebase操作
解决方案
可以通过重新合并原特性分支的方式轻量解决:
- 拉取最新的master分支,同时检出原特性分支(假设名为
feature/xxx) - 在
feature/xxx分支执行git merge master,解决可能存在的冲突 - 将更新后的
feature/xxx分支合并到master分支(通过常规PR或直接merge)
这种方式的优势:
- 无需逐个处理提交,操作复杂度低
- 原特性分支的所有提交作者信息会完整保留在master分支历史中
- 属于常规的merge操作,无需force push,符合企业环境的权限限制
如果原特性分支已被删除,可以通过以下方式恢复:
- 找到原合并到master的提交哈希(假设为
ORIGINAL_MERGE) - 基于该提交创建新分支:
git checkout -b feature/restore-xxx $ORIGINAL_MERGE - 后续按上述步骤2-3执行merge操作
内容的提问来源于stack exchange,提问作者jeancallisti
相关产品推荐
相关产品推荐

