合并代码到master分支的正确方法?squash合并后如何处理develop分支
状态原因说明
Squash and Merge 操作会将待合并分支的多个提交压缩为1个全新的提交写入目标分支(master),原develop分支上的10余个历史提交并没有被记录到master的提交链中,因此Git会判定develop分支比master多出未合并的提交,显示为Ahead of master状态。
方案1:保留原有develop分支的处理步骤
- 先切换到本地master分支,拉取远程最新的master代码:
git checkout master && git pull origin master - 切换回本地develop分支,用最新的master代码硬重置develop分支:
git checkout develop && git reset --hard origin/master - 本地确认develop分支内容和master完全对齐后,强制推送到远程仓库覆盖旧的远程develop分支:
git push -f origin develop
注意:如果当前develop分支上还有未合并到master、需要保留的新改动,请先将改动暂存到stash或临时分支,重置完成后再合并回develop,避免代码丢失。
方案2:删除原分支后重建同名develop分支的处理步骤
这种方案操作更简单,完全不会打乱现有代码流程:
- 先删除本地旧的develop分支:
git branch -D develop - 切换到master分支,拉取远程最新的master代码:
git checkout master && git pull origin master - 基于最新的master新建同名的develop分支:
git checkout -b develop - 将新的develop分支推送到远程仓库,绑定上游关联:
git push -u origin develop
后续所有开发工作直接基于新的develop分支提交即可,不会出现提交冲突或历史混乱的问题。
内容的提问来源于stack exchange,提问作者Notorious776
相关产品推荐
相关产品推荐

