gitlab 仓库迁移,以及解决remote: fatal: pack exceeds maximum allowed size

这篇具有很好参考价值的文章主要介绍了gitlab 仓库迁移,以及解决remote: fatal: pack exceeds maximum allowed size。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景:是需要新建一个仓库,把老的仓库里面的git提交啥的都迁移过来。但是呢,总是失败,提醒大致意思就是提交的commit和tag太大了不行。

目录

方法一:命令迁移

方法二:脚本迁移

方法三:镜像


方法一:命令迁移

基本方法:

cd existing_repo
git remote rename origin old-origin
git remote add origin git@host/*.git
git push -u origin --all
git push -u origin --tags

但是过程中会报错: 

提示

remote: fatal: pack exceeds maximum allowed size
error: remote unpack failed: unpack-objects abnormal exit

方法二:脚本迁移

解决办法呢,就是我们不一下把所有的commit提交,改为分步骤提交就可以了。

前提是也设置好上面的命令了

cd existing_repo
git remote rename origin old-origin
git remote add origin git@host/*.git

提交commit改为下面的脚本就可以了

#!/bin/bash


# Adjust the following variables as necessary
REMOTE=origin
BRANCH=$(git rev-parse --abbrev-ref HEAD)
BATCH_SIZE=100

# check if the branch exists on the remote
if git show-ref --quiet --verify refs/remotes/$REMOTE/$BRANCH; then
    # if so, only push the commits that are not on the remote already
    range=$REMOTE/$BRANCH..HEAD
else
    # else push all the commits
    range=HEAD
fi
# count the number of commits to push
n=$(git log --first-parent --format=format:x $range | wc -l)

# push each batch
for i in $(seq $n -$BATCH_SIZE 1); do
    # get the hash of the commit to push
    h=$(git log --first-parent --reverse --format=format:%H --skip $i -n1)
    echo "Pushing $h..."
    git push $REMOTE ${h}:refs/heads/$BRANCH
done
# push the final partial batch
git push $REMOTE HEAD:refs/heads/$BRANCH

方法三:镜像

可以将源端仓库,镜像克隆到本地,再镜像推送到目的端。文章来源地址https://www.toymoban.com/news/detail-731824.html

git clone --mirror git@host:group1/repo.git
git push --mirror git@host:group2/repo.git

到了这里,关于gitlab 仓库迁移,以及解决remote: fatal: pack exceeds maximum allowed size的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • gitee仓库项目迁移到gitlab仓库

    背景 之前一直使用gitee代码仓库提交代码,现在需要将gitee仓库中的代码迁移到gitlab中,并保留原有的提交记录。 配置好了本地git,并本地与gitlab仓库已连接。 我这里使用 ssh方式拉去代码,因此需要配置ssh密钥 也可以直接使用gitee仓库中url地址直接导入整个仓库到gitlab中,

    2024年02月21日
    浏览(54)
  • gitee仓库迁移至gitlab仓库简单方法,保留提交记录

    1、先将gitee上的项目git clone至本地; 2、在gitlab上创建空项目,创建完成后复制新建项目的url; 3、cd至项目内部,查看git remote是否是origin; 4、是origin则直接修改origin的url,url为刚才复制的新建项目的url; 5、查看是否已修改为新项目地址的url; 6、推送代码至新仓库; 结束

    2024年02月11日
    浏览(52)
  • Gitlab 实现仓库完全迁移,包括所有提交记录、分支、标签

    如果你和我一样,不喜欢命令行,就看其他方案。 选中要导出的项目,选择设置-expand-export project 刷新一下,直接下载 新建项目并导入 如果你是打杂的,没管理员权限,这步也不行。 在 gitlab 仓库页面,点击下载,注意使用 gz 格式!!! 去往你的新主体的 gitlab页面开始仓

    2024年03月28日
    浏览(49)
  • git clone 报错:fatal: Unencrypted HTTP is not supported for GitLab. Ensure the repository remote URL i

     git版本问题,是当前版本过高,要求使用https协议,需要根据需要安装指定版本。遇到这个问题时我的git版本是:  需要安装指定版本。

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

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

    2024年02月06日
    浏览(57)
  • 成功解决使用git clone下载失败的问题: fatal: 过早的文件结束符(EOF) fatal: index-pack 失败

    1.缓存不够 按照下面操作增加缓存(命令行操作),若是不想使用命令行,也可以在用户家目录下的全局git配置文件 .gitconfig 中,直接更改文件内的内容 使用 git clone 克隆代码时出现以下报错,这个一般是由于代码仓库太大,而本地网络不是很稳定都可以造成以下问题 方法

    2024年01月18日
    浏览(110)
  • fatal: bad object refs/remotes/origin/xxx 解决方法

    也可一个一个点进去以文件夹删除

    2024年02月11日
    浏览(46)
  • git 解决 “fatal: Could not read from remote repository.“

    现象 在使用Git将本地仓库推送到远程仓库的时候,发生了如下错误:“fatal: Could not read from remote repository.”   原因 出现这错误一般是以下两种原因: 客户端与服务端未生成 ssh key 客户端与服务端的ssh key不匹配 为解决以上问题,我们需要重新生成一次ssh key ,并重新配置一

    2024年02月09日
    浏览(43)
  • 【解决】Cloning into ‘xxx‘... remote: HTTP Basic: Access denied fatal:

    如果更改了 gitlab 账号密码的情况下,再次 clone 出现如下错误: 解决办法: 在电脑上直接搜索 :凭据管理器 或者 打开 【控制面板】-【凭据管理器/管理你的凭据】 【Windows凭据】-【普通凭据】-找到对应的git地址,点击里面的修改按钮,修改里面的账号密码即可。

    2024年02月15日
    浏览(50)
  • git 推送出现fatal: The remote end hung up unexpectedly解决方案

    在使用git更新或提交项目时候出现 \\\"fatal: The remote end hung up unexpectedly \\\" 的报错; 报错的原因原因是推送的文件太大。 下面给出解决方法 方法一: 修改提交缓存大小为500M,或者更大的数字 git config --global http.postBuffer 524288000 git config --global http.postBuffer 1048576000 或者在克隆/创建

    2024年02月04日
    浏览(52)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包