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

如何在fork或mirror repo中同步所有branch与tag并保留自有分支?

实现Fork/镜像仓库与上游同步(保留自有分支)的最简方案

整个操作只会对齐上游仓库存在的分支和标签,你自行创建的、上游没有的私有分支全程不会被修改,可以完整保留。

操作步骤

  • 第一步:进入本地仓库目录,配置上游远程源(仅首次操作需要)
    先查看现有远程配置:
    git remote -v
    如果输出里没有名为upstream的上游源,执行添加:
    git remote add upstream <上游原始仓库的HTTPS/SSH地址>

  • 第二步:拉取所有最新内容
    同时拉取上游和你自己远程仓库的全部分支、标签,避免本地版本过时:
    git fetch upstream --tags && git fetch origin --tags

  • 第三步:批量同步上游分支到你的远程仓库
    执行以下批量命令,自动对齐所有上游存在的分支:

    for branch in $(git for-each-ref --format='%(refname:short)' refs/remotes/upstream/); do
      git checkout $branch
      git merge upstream/$branch --ff-only
      git push origin $branch
    done
    

    说明:

    • 命令中的--ff-only参数表示仅做快进合并,如果你在上游原有分支上有和上游冲突的自定义修改,命令会直接终止对应分支的同步,避免意外覆盖你的内容
    • 如果你需要强制让上游原有分支完全对齐上游版本、丢弃你在这些分支上的修改,可以把git merge upstream/$branch --ff-only替换为git reset --hard upstream/$branch,操作前请确认你不需要这些分支上的自定义内容
  • 第四步:同步上游标签
    把所有拉取到的上游标签推送到你的远程仓库:
    git push origin --tags

可选自动同步方案

如果你需要定期自动同步,可以在你仓库的CI/CD配置中添加定时任务,把上述命令写为执行脚本定期运行即可,无需手动操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 17:27:04