You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从master切出回退到指定commit的新分支,修改后提交PR

问题解答

1. 能否正常创建PR

可以正常创建PR,所有主流Git托管平台(GitHub、GitLab、Gitee等)均支持从任意已推送的远程分支向master分支发起拉取请求,没有分支提交链的限制。

2. PR合并后的master提交链形态

最终提交链结构取决于你选择的PR合并模式:

  • 若选择压缩合并(Squash Merge)或变基合并(Rebase Merge):合并后master的提交链确实会变为A-B-C-D-E-X,D、E的提交会完整保留在master历史中,你的改动会作为新的提交X接在E之后。
  • 若选择默认普通合并(No Fast Forward Merge):会额外生成一个合并提交M,最终提交链为A-B-C-D-E-M,M的两个父提交分别是E和X,D、E以及C-X的提交链都会保留在历史中。

无论选哪种合并模式,合并后master的最终代码内容都会是你修改后的X版本,相当于丢弃了D、E两个提交的代码改动。

3. 操作可行性

这个操作可以达到你要的“让master代码回到修改后的C版本”的效果,是可行的。但需要注意一个隐患:因为你是直接基于C切分支修改,而不是通过git revert命令撤销D、E的改动,如果后续你需要重新合入D、E的改动,Git可能无法自动识别历史冲突,需要手动处理。

如果想要提交历史更清晰规范,更推荐的做法是直接在master上执行git revert <D的提交哈希> <E的提交哈希>,生成两个明确的回退提交,既能达到代码回退的效果,也不会影响后续旧改动的合入。


内容的提问来源于stack exchange,提问作者BobbKitty729

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 20:45:04