如何从Git QA分支仅部署个人变更到PRD且不覆盖他人内容?
如何仅将QA分支中个人变更部署至PRD且保留他人变更?
可以实现,核心思路是挑选你在QA分支中的特定提交,单独合并到PRD分支,不会影响QA分支里其他开发者的变更。下面是具体操作步骤:
方法一:使用git cherry-pick(推荐)
这是最直接的方式,精准挑选你的提交应用到PRD分支:
- 切换到PRD分支并拉取最新代码:
git checkout prd git pull origin prd - 查看QA分支的提交记录,筛选出你自己的提交哈希值:
你可以通过提交作者(git log qaAuthor字段)或提交信息来识别自己的提交,记录下对应的哈希值(比如a1b2c3d)。 - 将你的提交逐个应用到PRD分支:
git cherry-pick a1b2c3d e4f5g6h- 如果遇到冲突,手动解决冲突后执行
git add .,再运行git cherry-pick --continue继续操作 - 若想跳过某个提交,执行
git cherry-pick --skip;若要终止操作,执行git cherry-pick --abort
- 如果遇到冲突,手动解决冲突后执行
- 推送变更到远程PRD分支:
git push origin prd
方法二:基于PRD创建临时分支,批量合并个人变更
如果你的提交较多,也可以用这种批量处理方式:
- 从PRD分支创建临时分支:
git checkout prd git checkout -b temp-prd-my-changes - 将你在QA分支中的连续提交批量应用到临时分支:
找到你最早的提交哈希start-hash和最新的提交哈希end-hash,用区间挑选:git cherry-pick start-hash..end-hash - 验证临时分支的代码无误后,切换回PRD分支合并临时分支:
git checkout prd git merge temp-prd-my-changes git push origin prd - 可选择删除临时分支:
git branch -d temp-prd-my-changes
注意事项
- 确保你的提交不依赖其他开发者的代码,否则cherry-pick时会出现冲突,需要手动解决
- 操作前建议给PRD分支创建备份:
git branch prd-backup-YYYYMMDD,防止操作失误 - 整个过程不会修改QA分支,其他开发者的变更会继续保留在QA分支中,后续他们可以正常合并到PRD
内容的提问来源于stack exchange,提问作者Nikhil Padole
相关产品推荐
相关产品推荐

