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

如何将一批提交的修改导入当前分支而不创建新提交?

解决方案

用git cherry-pick -n处理冲突的正确姿势

你提到的git cherry-pick -n完全可以实现需求,冲突后的处理流程只是不需要最后一步提交而已:

  1. 遇到冲突时,先手动编辑冲突文件,把代码冲突解决掉
  2. 执行git add <已修复冲突的文件>,将解决后的文件放入暂存区
  3. 运行git cherry-pick --continue,Git会继续应用剩下的提交,而且因为你加了-n参数,全程不会自动创建新提交

要是中途不想继续了,直接跑git cherry-pick --abort就能回到操作前的状态。

补丁导入的替代方案

用补丁确实可行,步骤也很清晰:

  1. 切换到包含目标提交的分支,生成指定范围的补丁文件:
    # 生成最近10次提交的补丁,可根据需求调整数量
    git format-patch -k -10 HEAD~10
    # 或者指定精确的提交区间:git format-patch <起始提交哈希>..<结束提交哈希>
    
  2. 切回当前分支,应用补丁:
    git apply *.patch
    
  3. 要是遇到冲突,补丁会提示具体的冲突文件,你手动解决后执行git add <处理好的文件>就行,整个过程不会生成任何新提交。

如果想让补丁自动暂存修改(省掉手动add的步骤),可以用git am --no-commit <补丁文件>,冲突解决后同样是git add文件,再执行git am --continue,也不会创建提交。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 22:48:50