Git从release分支合并后,如何推送更新至远程main和develop分支?
Git推送问题解答
你的命令用法问题
你执行的git push -f -u origin develop main确实存在问题:
-f是强制推送,在你这种正常合并release分支的场景下完全没必要,强制推送会覆盖远程分支的历史,只有在确认需要重写远程分支历史时才该使用,这里显然不属于这种情况。-u参数只能给一个本地分支设置远程上游关联,当你同时指定两个分支时,它只会给最后一个分支(也就是main)设置关联,但因为命令执行逻辑的问题,导致只有develop被推送成功,这就是你遇到的现象。
正确的推送步骤
按照Git Flow规范,你需要同步main、develop分支,以及你打的1.2标签到远程仓库,分步骤执行即可:
- 推送更新后的main分支(你已经成功执行过这一步):
git push origin main - 推送更新后的develop分支:
不需要加git push origin develop-u,除非这是你第一次把develop分支推送到远程,否则本地分支已经和远程分支有上游关联了。 - 推送你打的1.2标签到远程:
如果要一次性推送所有本地标签,可以用git push origin 1.2git push origin --tags。
是否只需要更新main分支?
当然不是。Git Flow的核心逻辑就是让main(生产稳定分支)和develop(日常开发集成分支)都保持同步:
- main分支承载稳定的发布版本,每次合并release或hotfix后都要推送到远程,确保生产环境能获取到最新的稳定代码。
- develop分支是团队日常开发的基础分支,所有完成的feature、release合并后的代码都要同步到这里,让其他开发者能基于最新的开发分支继续工作。
所以你必须同时推送main和develop分支到远程,才能保证团队代码的一致性。
内容的提问来源于stack exchange,提问作者user6551314
相关产品推荐
相关产品推荐

