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

如何将Git无关分支的自定义提交应用至另一分支?

迁移自定义提交到新分支的正确操作方法

先确认你的自定义提交范围:
运行 git log --oneline master-2.1.2.1..V1-2.1.2.1,会列出V1-2.1.2.1上所有基于master-2.1.2.1的自定义提交,确保这些是你要迁移的内容。

方法一:Git Rebase(线性迁移,推荐)

这种方式会把自定义提交线性重放到新分支上,历史更整洁:

  1. 切换到目标分支:git checkout V1-2.1.2.2
  2. 执行重基命令:
    git rebase --onto V1-2.1.2.2 master-2.1.2.1 V1-2.1.2.1
    该命令会把V1-2.1.2.1中master-2.1.2.1之后的所有提交,重新应用到V1-2.1.2.2上。
  3. 处理冲突:若Git提示冲突,打开冲突文件,手动整合V1-2.1.2.2的基础代码和自定义改动,执行git add <冲突文件>,再运行git rebase --continue,重复直到重基完成。
  4. 验证:用git log查看提交历史,编译固件确认自定义功能生效。

方法二:批量Cherry Pick(逐个迁移提交)

适合需要筛选部分提交的场景:

  1. 切换到目标分支:git checkout V1-2.1.2.2
  2. 批量迁移所有自定义提交:
    git cherry-pick master-2.1.2.1..V1-2.1.2.1
  3. 处理冲突:解决冲突后执行git add <冲突文件>,再运行git cherry-pick --continue,直到所有提交迁移完成。
  4. 验证:检查提交历史和固件编译效果。

方法三:交互式三方合并(保留分支历史)

若不想重写提交历史,可通过合并整合改动:

  1. 切换到目标分支:git checkout V1-2.1.2.2
  2. 执行合并命令:
    git merge V1-2.1.2.1 --no-ff
    --no-ff参数会生成一个合并提交,保留V1-2.1.2.1的分支历史。
  3. 处理冲突:解决冲突后执行git add <冲突文件>,再运行git commit完成合并。
  4. 验证:检查合并后的代码和提交历史,确认自定义改动已整合。

VS Code图形化操作步骤

针对你使用的VS Code Git插件,操作流程如下:

  1. 打开源代码控制面板(快捷键Ctrl+Shift+G),切换到V1-2.1.2.2分支。
  2. Rebase方式迁移:
    • 右键点击V1-2.1.2.1分支,选择「Rebase Current Branch Onto...」。
    • 选择V1-2.1.2.2作为目标基底。
    • 遇到冲突时,在编辑器中解决冲突,点击右上角「+」暂存文件,再点击面板中的「Continue Rebase」按钮,重复完成重基。
  3. Cherry Pick方式迁移:
    • 在历史记录中找到V1-2.1.2.1的自定义提交(可对比master-2.1.2.1筛选),按住Ctrl多选目标提交。
    • 右键点击选择「Cherry Pick」,解决冲突后暂存文件,点击「Continue Cherry Pick」。
  4. 合并方式:
    • 右键点击V1-2.1.2.1分支,选择「Merge Branch into Current Branch」。
    • 勾选「Create a commit even if merge is fast-forward」,点击「Merge」。
    • 解决冲突后暂存文件,点击「Commit」完成合并。

最终验证与推送

  • 编译Marlin固件,确认自定义功能正常工作。
  • 用git status确认分支状态干净,提交历史符合预期。
  • 推送到GitHub备份:git push origin V1-2.1.2.2(首次推送需加-u参数:git push -u origin V1-2.1.2.2)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 00:13:22