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

Git最佳实践:如何迁移个人提交至master且排除test分支他人变更

将特定提交迁移到Master分支的最佳实践

方法1:用git cherry-pick迁移单/少量提交

适合提交数量不多的场景,精准挑选自己的提交迁移:

  • 切换到master分支并拉取最新代码:
    git checkout master
    git pull origin master
    
  • (可选但推荐)基于最新master创建新分支,避免直接修改master:
    git checkout -b my-feature-clean
    
  • 查看你的开发分支提交记录,找出自己的所有提交哈希(用git log --oneline或Git可视化工具均可)
  • 逐个或批量挑选提交到新分支:
    git cherry-pick 提交哈希1 提交哈希2 ...
    
    • 若遇到冲突,解决冲突后执行git cherry-pick --continue;想终止操作则用git cherry-pick --abort
  • 切换回master,合并干净分支:
    git checkout master
    git merge my-feature-clean
    
  • 推送到远程仓库:git push origin master

方法2:用git rebase --onto批量迁移提交

适合提交数量较多,且希望保持提交历史线性的场景:

  • 找到你的开发分支基于test分支创建时的「起点提交哈希」:也就是你开发分支第一个提交的父提交(可通过git log --oneline my-dev-branch查看定位)
  • 切换到你的开发分支:
    git checkout my-dev-branch
    
  • 执行rebase,将你的所有提交迁移到master分支上:
    git rebase --onto master 起点提交哈希
    
    • 这句命令的作用是:把「起点提交哈希」之后的所有提交(即你自己的开发提交),重新放到master分支的最新版本之上
  • 遇到冲突时,解决冲突后执行git add .,再用git rebase --continue;终止操作则用git rebase --abort
  • 切换回master合并分支:
    git checkout master
    git merge my-dev-branch
    
  • 推送到远程仓库:git push origin master

注意事项

  • 操作前务必备份你的开发分支:git branch my-dev-branch-backup,防止操作失误丢失提交
  • 如果你的开发分支已经推送到远程,执行rebase后需要强制推送(git push -f origin my-dev-branch),但要确保没有其他同事在这个分支上工作
  • 两种方法都能避免引入test分支上其他同事的变更,因为只迁移了你自己的提交

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 02:57:56