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

如何用其他分支内容完全替换Git仓库master分支内容

问题原因

普通git merge操作默认会合并两个分支的差异,不会做全量覆盖:只要master分支存在updated分支没有的独有提交、独有文件,Git就会保留这部分内容,最终得到两个分支的混合结果,自然达不到完全替换的预期。

操作前建议先给当前master打备份分支,避免误操作丢失内容:
git branch master-backup

操作方案

根据实际场景二选一即可:

方案1:全量对齐(推荐)

该方案会让master的内容、提交历史和updated分支完全一致,无任何原有内容残留:

  • 切换到master分支
    git checkout master
  • 将master分支指针硬重置到updated分支的最新提交,原有master上和updated不一致的内容、提交会被全部清空
    git reset --hard updated
  • 如果需要同步到远程仓库,由于重置后本地与远程master历史不一致,需要执行强推(注意:强推会覆盖远程master的所有内容,操作前确认团队成员没有未同步到远程的重要master提交)
    git push --force origin master

方案2:保留合并记录(适配禁止强推的团队场景)

如果团队规则不允许强推master、需要保留合并轨迹,可以通过生成合并提交的方式实现内容全量替换:

  • 切换到master分支
    git checkout master
  • 执行合并,指定策略直接采用updated分支的全部内容
    git merge -s theirs updated

若当前Git版本不支持-s theirs合并策略,依次执行以下命令可达到同等效果:

git merge -s ours --no-commit updated
git read-tree -u -m updated
git commit -m "merge: fully replace master content with updated branch"
  • 正常推送到远程即可
    git push origin master

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 18:45:42