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

Git开发操作中应先执行merge还是push?两种流程方案选型咨询

Git分支开发场景流程最佳实践结论

方案2是当前团队Git协作的通用最佳实践,方案1存在明显的流程风险,不推荐使用。

方案1的核心问题

  • 评审节点完全倒置:先把feature分支代码合并到本地develop、推送到远程develop之后才做代码评审,等于未经过审核的代码直接进入了公共集成分支。一旦评审发现逻辑错误、安全漏洞或者不符合规范的问题,需要额外做回滚操作,很容易搞乱develop分支的提交记录,甚至误影响其他已经拉取了最新develop代码的协作者。
  • 冲突解决过程无溯源:所有冲突解决操作都在本地develop分支完成,没有在远程留痕,其他协作者看不到你解决冲突时做了哪些调整,后续出问题很难定位原因。
  • 无远程代码备份:feature分支的所有代码只存在本地,一旦本地设备出现故障,开发的内容有直接丢失的风险。

方案2的合理性说明

方案2的核心逻辑是评审在前、合入在后,能完全规避方案1的上述问题,团队落地时的标准完整流程如下:

  • 基于最新的远程develop分支拉取本地功能分支:git checkout -b feature/xxx(建议给feature分支加明确的功能/需求标识,不要直接叫feature)
  • 完成本地开发后提交改动:git add .、git commit -m "feat: 对应功能的清晰说明"(不要用无意义的"done"作为提交信息)
  • 将本地feature分支推送到远程仓库做备份:git push origin feature/xxx
  • 基于远程feature分支发起合入develop的合并请求(MR/PR),同步组织代码评审
  • 评审阶段如果develop分支有新的提交导致代码冲突,直接切到本地feature分支,拉取最新的develop代码解决冲突,解决后再推送到远程feature分支即可,所有冲突调整的内容都会在合并请求里完整留痕,评审人可以看到全量改动
  • 评审通过后,再执行合并操作把feature分支合入develop,推荐合并时加--no-ff参数保留完整的合并轨迹,合入完成后可以按需删除已经完成使命的feature分支

注意:所有公共分支(包括develop、主分支)的合入都必须留评审记录,禁止直接在本地合并后推送到远程公共分支,避免脏代码污染公共协作环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 21:27:35