当前位置: 首页 > article >正文

Gitlab中如何进行仓库迁移

需求:之前有一个自己维护的新仓库A,现在需要将这个仓库提交并覆盖另一个旧的仓库B,需要保留A中所有的commit信息。

1.方法一:将原有仓库A导出后再导入到新的仓库B中

适用场景:新的仓库B是一个待建仓库,相当于做了仓库迁移

  • 1.登录原有仓库B,查看项目信息,如下图所示,点击设置——通用
    在这里插入图片描述
  • 2.高级选型中选择下载导出,导出成功后会收到邮件下载连接,点击下载到本地
    在这里插入图片描述
  • 3.登录gitlab,新建项目——选择导入项目,上传上一步的邮件中下载的压缩包就可以了,传完文件刷新页面会一直显示导入中,这个过程可能比较慢。

2.方法二:通过git进行仓库有迁移

适用场景:已有一个新仓库A,有一个旧仓库B,B中有之前存在的代码,现在需要将A中所有的代码和commit信息都提交并覆盖B中的内容。

  • 1: 克隆旧仓库B(目标仓库)
    首先,需要从 GitLab 上克隆目标仓库(即你想覆盖的旧仓库),在你的本地机器上执行以下命令:
git clone <旧仓库的 URL>
cd <旧仓库的目录>
  • 2: 添加新仓库A作为远程仓库
    然后需要将新仓库添加为远程仓库,以便能够将新仓库的内容推送到目标仓库。假设你的新仓库 URL 是 <新仓库的 URL>,可以使用以下命令:
git remote add new-origin <新仓库的 URL>
  • 3: 拉取新仓库的内容
    接下来,拉取新仓库的内容到你的本地仓库:
git fetch new-origin
  • 4: 覆盖旧仓库的内容
    此时,新仓库的内容已经拉取到本地,但需要将其强制推送到旧仓库,可以通过以下命令实现:
git reset --hard new-origin/main

注意:这里假设新仓库的默认分支是 main,如果是其他分支(例如 master),请相应调整命令中的分支名称。
reset --hard 会将本地仓库的内容重置为新仓库中的内容,同时保留新仓库的 commit 历史。

  • 5: 推送到旧仓库
    最后,将重置后的内容推送到目标仓库(即旧仓库),并使用 --force 参数来强制覆盖目标仓库的内容:
git push origin main --force

注意:如果目标仓库的默认分支是 master,将 main 替换为 master。


http://www.kler.cn/a/539735.html

相关文章:

  • leetcode 做题思路快查
  • R语言LCMM多维度潜在类别模型流行病学研究:LCA、MM方法分析纵向数据
  • ZooKeeper 的典型应用场景:从概念到实践
  • Java数据结构 | TreeMap 和 TreeSet
  • .net一些知识点5
  • 使用 SDKMAN! 在 Mac(包括 ARM 架构的 M1/M2 芯片)上安装 Java 8
  • XILINX硬件设计-(1)LVDS接口总结
  • 【Arxiv 大模型最新进展】TableRAG: 提高大语言模型在理解和推理大规模表格数据的效率和性能
  • oscp备考,oscp系列——VulnOSv2靶场,两种方法获取低权限shell
  • 三星OEM版SSD固态硬盘Model码对应关系
  • 【Spring Boot】Spring Boot解决循环依赖
  • c++计算机教程
  • 5G技术解析:从核心概念到关键技术
  • Java 中 ArrayList 和 LinkedList 有什么区别?
  • 【WB 深度学习实验管理】利用 Hugging Face 实现高效的自然语言处理实验跟踪与可视化
  • SQL自学,mysql从入门到精通 --- 第 5 天,对函数的处理
  • 神经网络|(九)概率论基础知识-泊松分布及python仿真
  • MySQL与钉钉数据融合,加速企业付款退款自动化进程
  • Spring AI -使用Spring快速开发ChatGPT应用
  • 鸿蒙NEXT API使用指导之文件压缩和邮件创建
  • 【Spring】Spring MVC入门(一)
  • 如何将 Jupyter Notebook (.ipynb) 文件转换为 Python (.py) 文件
  • Git 常见错误与解决方案全指南
  • 安装perl-DBD-MySQL报错:Requires: libmysqlclient.so.18
  • C++ 设计模式 - 访问者模式
  • MySQL数据库 - 阶段性体系总结