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

Git中保留master分支历史提交,用beta-release分支完整覆盖master分支的方法

保留Master分支历史,用Beta-Release完全覆盖内容的解决方案

没问题,我来帮你搞定这个需求——既要保住master分支里所有重要的旧提交,又要用beta-release分支的完整新版本覆盖master的当前内容,这其实用Git的合并策略就能轻松实现,具体步骤如下:

  • 先确保本地仓库同步了远程的最新代码,避免后续操作出现意外冲突:
    git fetch origin

  • 切换到master分支:
    git checkout master

  • 执行特殊的合并操作,强制用beta-release的内容覆盖master:
    git merge --allow-unrelated-histories -X theirs beta-release

    给你拆解一下这个命令的作用:

    • --allow-unrelated-histories:因为beta-release是重置后只剩单个提交,和master的历史已经完全脱节了,必须加这个参数才能让Git允许合并这两个无关联的分支历史。
    • -X theirs:这是合并策略的关键选项,告诉Git不管有没有冲突,都优先采用beta-release分支的内容。由于beta-release是完整的新版本,执行完这个命令后,master的内容会和beta-release完全一致,同时之前所有的旧提交都会被保留下来。
  • 如果你用的Git版本低于2.3(这个版本才支持-X theirs),别慌,还有备选方案:

    1. 直接把beta-release的所有内容复制到当前master分支:
      git checkout beta-release -- .
    2. 把这些变更加入暂存区并提交:
      git add .
      git commit -m "同步beta-release完整版本,覆盖当前master内容"

完成以上操作后,master分支会保留所有旧的历史提交,而最新的提交会让master的代码状态和beta-release完全一致,完美符合你的要求。

最后如果需要把这个变更推送到远程仓库,执行:
git push origin master


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 12:32:33