Git - 记一次完整的新旧Gitlab迁移

这篇具有很好参考价值的文章主要介绍了Git - 记一次完整的新旧Gitlab迁移。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Git - 记一次完整的新旧Gitlab迁移


要求

  • 保留完整的分支
  • 保留提交记录

Git - 记一次完整的新旧Gitlab迁移


群组迁移

两种方式, 如果多就迁移,如果少,就新建。

原GitLab_群组导出

Git - 记一次完整的新旧Gitlab迁移


新GitLab_群组导入

Git - 记一次完整的新旧Gitlab迁移


Project迁移(UI方式)

原GitLab_项目导出

Git - 记一次完整的新旧Gitlab迁移

选择 【下载导出】

Git - 记一次完整的新旧Gitlab迁移

新GitLab_项目导入

Git - 记一次完整的新旧Gitlab迁移

Git - 记一次完整的新旧Gitlab迁移

Git - 记一次完整的新旧Gitlab迁移

Git - 记一次完整的新旧Gitlab迁移
Git - 记一次完整的新旧Gitlab迁移


Project迁移(command方式)【推荐】

核心

#从老gitlib拉取裸仓库,并在本地文件系统创建gitbook-demo.git文件夹
git clone --bare ssh://git@oldgitlab:port/group1/gitproject-demo.git
#进入代码目录
cd gitproject-demo.git
#向新git推送镜像
git push --mirror ssh://git@newgitlab:port/group1/gitproject-demo.git
  • --bare是裸仓库的意思,区别与git clone,他不是一个工作空间,不可以在目录下进行变更操作,即使操作了也不被接受, 执行命令后会复制全部的分支、标签,并且在命令执行过程中的所有远端的变动均被忽略。

–bare
Make a bare Git repository. That is, instead of creating <directory> and placing the administrative files in <directory>/.git, make the <directory> itself the $GIT_DIR. This obviously implies the --no-checkout because there is nowhere to check out the working tree. Also the branch heads at the remote are copied directly to corresponding local branch heads, without mapping them torefs/remotes/origin/. When this option is used, neither remote-tracking branches nor the related configuration variables are created.

  • --mirror镜像代码仓库,完完整整

Instead of naming each ref to push, specifies that all refs under refs/ (which includes but is not
limited to refs/heads/, refs/remotes/, and refs/tags/) be mirrored to the remote repository.
Newly created local refs will be pushed to the remote end, locally updated refs will be force
updated on the remote end, and deleted refs will be removed from the remote end. This is the
default if the configuration option remote..mirror is set.

Git - 记一次完整的新旧Gitlab迁移


原Gitlab Clone bare

ysw@DESKTOP-T7NDJ0A MINGW64 /d/codeMerge
$ git clone --bare  http://ip:port/xxxx/yyy.git
Cloning into bare repository 'uomSM.git'...
remote: Enumerating objects: 1438, done.
remote: Total 1438 (delta 0), reused 0 (delta 0), pack-reused 1438
Receiving objects: 100% (1438/1438), 872.14 MiB | 32.58 MiB/s, done.
Resolving deltas: 100% (420/420), done.

ysw@DESKTOP-T7NDJ0A MINGW64 /d/codeMerge

Git - 记一次完整的新旧Gitlab迁移

Git - 记一次完整的新旧Gitlab迁移

新的Gitlab创建新子群组(可选)

按需选择

Git - 记一次完整的新旧Gitlab迁移


推送bare版本到新Gitlab

```java
ysw@DESKTOP-T7NDJ0A MINGW64 /d/codeMerge
$ pwd
/d/codeMerge

ysw@DESKTOP-T7NDJ0A MINGW64 /d/codeMerge
$ cd uomSM.git/


- uom子群组名
- yyy自定义项目名称,我一般保持和旧的项目一致
$ git push --mirror https://新git地址/xxxx/uom/yyy.git

查看新Gitlab中的工程

Git - 记一次完整的新旧Gitlab迁移

OK,分支正常,提交日志正常。

Git - 记一次完整的新旧Gitlab迁移

Git - 记一次完整的新旧Gitlab迁移

Git - 记一次完整的新旧Gitlab迁移

设置个人访问令牌

Git - 记一次完整的新旧Gitlab迁移
Git - 记一次完整的新旧Gitlab迁移
Git - 记一次完整的新旧Gitlab迁移

记住该令牌

IDEA Clone Project

git clone https://xxxx/xx/xxx/xxxxx.git

输入 账号和个人访问令牌

Git - 记一次完整的新旧Gitlab迁移

常见问题

SSL certificate problem: self signed certificate in certificate chain

执行 git config --global http.sslverify false


remote: HTTP Basic: Access denied. The provided password or token is incorrect or your account has 2FA enabled and you must use a personal access token instead of a password. See

请按照 《设置个人访问令牌》章节设置密码,并保存该密码,使用该密码访问Gitlab

Git - 记一次完整的新旧Gitlab迁移文章来源地址https://www.toymoban.com/news/detail-417163.html

到了这里,关于Git - 记一次完整的新旧Gitlab迁移的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 记一次git冲突解决

    在提交mr的时候突然遇到了conflict,这时候意识到没有及时pull代码,脑海中想起了隔壁一起入职的同事经常念叨的一句“每天早上来都pull一下代码”。但是已经迟了 我看了一下,主要是同一个文件,master分支上已经被修改过,然后我要mr的代码也在这个文件上进行了修改。因

    2024年02月05日
    浏览(40)
  • 【Git】git push --mirror 迁移项目到其他代码仓库,且保留分支与提交记录。

    需要把云效代码仓库的某些项目,迁移到公司内部的代码仓库。且需要保留迁移项目的分支和提交记录。 百度各种方法,并不停本地测试,结合以往gitlab操作经验解决。 执行前需要,提前在其他代码仓库里新建好项目(New Project),得到Rename repository Path。 执行逻辑 1.根据远

    2024年02月12日
    浏览(51)
  • [git] 记一次git lfs拉取失败解决过程

    之前在Unity做了一个小demo,用unity的.gitignore的模板和自家工程的.gitattribute模板,加了lfs上传了,后续其它同学下载我的demo的时候出现了prefabs和fbx丢失的问题 一开始发现好像是lfs没有自动拉取并析出,同学使用git lfs pull 解决了部分fbx的问题,仍然有几个prefabs是丢失状态,后

    2024年04月15日
    浏览(43)
  • 如何迁移git仓库,gitee仓库迁移到gitlab

    首先 gitee上的仓库为A gitlab上创建一个空仓库为C 1、本机建一个任意名称文件夹:test,cmd进入test文件夹。 2、执行 git clone http://xxx.xxx.xx.10:xxx/xxxxkai/oms.git 克隆gitee的仓库A为B(也就是test文件夹) 2、修改 B仓库的远端指向 2.1重命名B指向的远端仓库 【因为2.2要新增名为origin的链接,

    2023年04月20日
    浏览(62)
  • 记一次使用git prune 命令的场景分析

    自动化测试团队在 Jenkins 上配置了用于运行自动化项目的 Job。今天,Job 在执行 git fetch 时报了下面的错误: 自动化团队成员无法解决此问题,于是,我这边帮忙阅读了 Job 的日志,使用 git prune 解决问题;找出了导致此异常场景的原因,并重现场景,让大家了解此场景,避免

    2024年02月03日
    浏览(30)
  • 【Git】git仓库完整迁移

    代码仓库,在公司有两个团队在做,并且gitlab所在环境不互通。有一个团队做的时间久一点,另一个团队想要用并做一些定制。就需要将代码转移到另一个gitlab管理。 参考:【Git】git仓库完整迁移(代码,分支,提交记录) Git命令(以下内容是询问chatAI的反馈) git remote 是

    2024年02月04日
    浏览(32)
  • git第一次推送gitlab项目

    第一次本地项目提交git远程厂库 1、通过命令 git init 把这个目录变成git可以管理的仓库 2、把文件添加到本地暂缓区 3、commit提交到本地分支 4、去gitlib上拿到你项目的地址 5、切换main分支 6、提交远程仓库 提交步骤 1、首先你先通过git init git clone 基本环境准备好后,你写完自

    2024年02月02日
    浏览(52)
  • 【已解决】记一次git删除指定的某次历史提交,并执行后续提交

    新项目,一个分支,提交十多次后发现第二次的提交影响了项目运行,且提交量较大(请不要问为什么十多次后才发现。。。) git log:查看历史提交版本号 git rebase -i 【要删除提交的前一次版本号】 这时显示如下, i ,进入编辑模式,删除想要删除的提交记录(带pick的整行

    2024年02月07日
    浏览(64)
  • 嵌入式实操--迁移git仓库至gitlab(二)

    本文只讲述操作的实际方法,假设gitlab git已安装成功 。 由于git仓库用于管理代码,所以当中有很多的分支及tags,为了进行仓库迁移就必须保留完整的仓库提交日记。需要通过 git clone --bare 做裸仓库克隆,才能保留完整的提交信息。 假设原git仓库的地址为 git://www.aa.com/proj

    2024年02月06日
    浏览(55)
  • 记录一次久远git仓库迁移

    因为项目需求,公司收购了一个第三方的项目,包含源码。需要将该项目上传到我们公司自己的gitlab上。没过脑子一顿操作: 然后,,然后就报错了。。 报错信息: 文件太大传不了。。查了一些相关问答。大部分说是两种原有原因:1.文件太大 2.历史commit太多,提交时需创

    2024年02月07日
    浏览(72)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包