git仓库迁移

本文详细介绍了如何在不改变分支关系和提交日志的前提下,将现有的Git仓库无缝迁移到另一个仓库,特别适用于从公网仓库迁移到内网仓库的场景。通过创建裸版库并使用mirror命令,可以完整保留所有历史信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

现在我们的代码大多数都会采用托管的形式(git、gitlab、github…)进行管理,我们在开发过程中有时候可能因为运维需要或者资源整合进行已有项目的整合,可能会遇到将已有仓库迁移到另外一个仓库,又不想改变各个分支的联系和提交日志,总之尽可能保留之前仓库的有用信息就像没做任何处理一样。本文场景就是,从一个仓库迁移到内网的一个仓库,代码托管使用的是gitlab。

正文

  1. 在本地创建裸版库
    在本地创建一个目录,比如:temp,然后进入到该目录,执行以下git命令
git clone --bare git://xxx/git_repo/old_project_name.git
//或者
git clone --bare https://xxx/git_repo/old_project_name.git

注意根据具体情况git地址更换为你原先git的仓库地址,效果图:
old_proj.git

  1. 创建新的仓库
    在这里插入图片描述
    在这里插入图片描述
    3.上传项目至新地址
    进入第一步本地创建的git仓库目录下执行如下命令:
git push --mirror git@xxx/new_group_name/new_proj.git
//或者
git push --mirror https://xxx/new_group_name/new_proj.git

在这里插入图片描述
等待片刻,命令执行结束显示成功后(100%,done字样),就可以查看到新的git仓库上已经有之前老的仓库中的项目了。

可能遇到的问题

执行git clone命令时可能会出现SSL certificate problem: self signed certificate的异常提示
这种问题,在windows下出现得频率高些

  1. 创建临时环境变量:
    windows
set GIT_SSL_NO_VERIFY=true git clone 

Linux

env GIT_SSL_NO_VERIFY=true git clone
  1. 用git自带的配置命令:
git config --global http.sslVerify false

在这里插入图片描述

写在最后

看到一篇文章可以参考一下
https://blog.youkuaiyun.com/qtl_crazy/article/details/81019097

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值