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

Git中release分支维护遇阻:master与release不同步怎么解决?

解决master与release分支合并时出现旧提交的问题

问题根源

你遇到的核心问题是master和release的提交历史出现了分叉,导致Git无法识别哪些提交已经合并到release。常见原因包括:

  • 之前合并master到release时使用了squash merge(将多个提交压缩为一个新提交),导致release中的提交哈希与master不一致,Git认为原提交未被合并
  • 对已推送到远程的公共分支(master/release)执行过变基操作,修改了提交历史
  • 合并冲突处理不当,导致部分提交未被正确同步

正确的同步流程

按照以下步骤操作,能确保master和release分支历史一致,避免旧提交重复出现:

1. 更新本地master到最新状态

git checkout master
git pull origin master

2. 创建基于最新master的临时合并分支

这个分支用于在本地提前处理所有冲突,避免PR中出现混乱:

git checkout -b sync-master-to-release master

3. 合并最新的release分支到临时分支

git pull origin release

此时如果有冲突,直接在本地解决,然后提交冲突解决结果:

git add .
git commit -m "Resolve conflicts between master and release"

4. 推送临时分支并发起合并请求

git push origin sync-master-to-release

然后在代码平台发起将sync-master-to-release合并到release的PR,注意使用普通merge方式合并,不要用squash或rebase合并。

避免问题的注意事项

  • 绝对不要对已推送到远程的公共分支(master、release)执行变基操作,这会彻底打乱团队的提交历史
  • 合并master到release时,禁止使用squash merge,必须保留原提交哈希,这样Git才能正确追踪哪些提交已合并
  • 如果之前已经用squash合并过导致历史混乱,建议一次性同步所有差异:按照上述流程创建临时分支,合并所有冲突后一次性合并到release,后续严格遵循普通merge规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 18:46:18