GitFlow疑问:develop与master分支需始终互为镜像吗?
GitFlow中develop与master分支的关系及修复方案
首先明确:develop和master分支并非互为镜像,GitFlow对两者的定位有清晰区分:
- master分支:仅存放已正式发布的稳定代码,每个提交都对应一个可交付的版本,只接受来自release分支或hotfix分支的合并。
- develop分支:是日常开发的整合分支,所有feature分支的完成代码都会合并到这里,它代表下一个版本的待发布代码基础,包含尚未正式发布的开发内容。
你遇到的master有develop没有的提交,是因为违反了GitFlow的核心流程:当release分支合并到master后,必须同时将release分支的改动合并回develop,确保develop始终包含最新的发布相关调整(比如版本号更新、发布修复等)。
针对当前情况,删除并重建develop分支是可行的修复方案,步骤如下:
- 拉取最新的master分支:
git checkout master git pull origin master - 删除本地旧的develop分支:
git branch -D develop - 基于最新master创建新的develop分支:
git checkout -b develop - 推送新的develop到远程(如果远程存在旧分支,需要强制推送覆盖):
git push origin develop --force
后续注意:每次完成release分支向master的合并后,务必切换到develop分支,执行git merge release/[你的版本号],再推送到远程,避免再次出现分支内容不一致的问题。
内容的提问来源于stack exchange,提问作者DonDon
相关产品推荐
相关产品推荐

