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

如何将本地Git仓库全部分支、标签推送至隔离网络内部Git服务器

物理隔离网络Git全仓库完整迁移操作步骤

你当前已经完成外网仓库克隆、物理摆渡、内网空仓库创建的前提下,按以下命令执行即可完成全量内容推送,覆盖内网空仓库的所有内容:

  1. 进入本地已克隆的内核仓库目录
cd /path/to/your/local/linux-kernel-repo
  1. 同步所有远程分支到本地(普通git clone默认仅拉取默认分支的本地副本,其余分支仅存在远程跟踪记录,执行该命令可确保所有分支都转为可推送的本地分支)
git branch -r | grep -v '\->' | sed 's/origin\///' | xargs -I {} git branch {} origin/{}
  1. 删除原外网远程源,避免误操作向外网地址推送
git remote remove origin
  1. 添加内网已创建的空仓库为新的远程源,地址从内网Gitlab/Bitbucket的仓库详情页获取,支持SSH或HTTP(S)格式
git remote add origin <你的内网仓库Git访问地址>
# 示例:git remote add origin git@internal-git.local:os/linux-kernel.git
  1. 执行全量强制推送,把所有分支、所有标签、全部提交记录推送到内网仓库,完全覆盖目标仓库内容
# 推送全部分支
git push origin --all --force
# 推送全部标签
git push origin --tags --force

优化方案(后续迁移其他仓库可参考)

如果还在外网环境准备迁移阶段,直接使用镜像克隆方式拉取仓库,后续推送步骤更简单,不需要额外同步分支:

外网环境执行镜像克隆,得到的裸仓库包含所有分支、标签、提交记录,无多余工作区:

git clone --mirror https://外网仓库地址

摆渡到内网后,进入镜像仓库目录,添加内网远程地址后直接执行镜像推送即可一步完成全量同步:

cd /path/to/repo.git
git remote add origin <内网空仓库地址>
git push --mirror --force

注意事项

  • 命令中带--force参数是因为需求明确要求完全替换内网仓库内容,若目标仓库有需保留的内容请勿加该参数
  • 若使用HTTP(S)协议推送,按提示输入内网Git平台的账号密码即可;若使用SSH协议,提前将当前操作机器的SSH公钥添加到内网Git平台的个人账号SSH密钥列表中
  • 推送完成后可在内网Git的Web页面核对分支数、标签数,和外网原仓库确认一致性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 15:06:09