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

git rebase操作后如何保留最新commit并得到A-B-C-E-D提交树?

操作步骤
  • 第一步:找回commit D的哈希值
    执行git reflog查看本地HEAD的历史变动记录,找到之前指向commit D的条目,复制对应的哈希值(一般是7位字符,下文统一用<d-hash>指代)。
  • 第二步:把D提交追加到E之后
    确保你当前处于newFeature分支,执行以下命令即可:
    git cherry-pick <d-hash>
    
    如果执行时提示冲突,按照你之前处理rebase冲突的方式修改冲突文件,修改完成后执行git add <冲突文件名>,再执行git cherry-pick --continue即可。
    如果git提示该提交为空、无法cherry-pick,说明你之前处理冲突时把D的所有修改都替换成了mainline分支的内容,想要保留空的D提交的话,加上允许空提交的参数即可:
    git cherry-pick --allow-empty <d-hash>
    

原因说明

你之前处理完rebase冲突后如果所有文件内容都和mainline的E提交完全一致,执行git rebase --continue时git会判定当前提交没有有效变更,自动跳过该提交,就会出现D消失的情况。如果之后再遇到同类场景,处理完冲突后先执行git commit --allow-empty,再执行git rebase --continue就能保留空提交。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:51:01