GitLab 备份所有仓库(自动克隆)

一、准备工作

1. 环境要求

  • 已安装 Git(版本 2.10+)
  • 本地磁盘空间充足(根据仓库总大小预估)
  • 已配置 SSH 密钥到 GitLab(推荐方式)

2. 获取 GitLab API 访问权限

  1. 登录 GitLab,点击右上角头像 → Settings
  2. 左侧菜单选择 Access Tokens
  3. 创建 Token:
    • 名称:如 backup
    • 权限:至少勾选 api
    • 记录生成的 Token(仅显示一次)

二、克隆全部仓库的方法

使用 Shell 脚本

bash 复制代码
#!/bin/bash
GITLAB_URL="http://192.168.0.224:1110"
TOKEN="glpat-N9HX9-XUpbErhxnB9311"
TARGET_DIR="/media/nihao/gitcore/gitlab_repos"

mkdir -p $TARGET_DIR && cd $TARGET_DIR
curl -s --header "PRIVATE-TOKEN: $TOKEN" "$GITLAB_URL/api/v4/projects?per_page=1000" | 
  jq -r '.[].ssh_url_to_repo' |
  while read repo; do
    git clone --mirror "$repo"
  done

执行步骤:

  1. 保存脚本为 clone_all.sh

  2. 安装依赖工具:

    bash 复制代码
    sudo apt install jq  # Ubuntu/Debian
  3. 修改脚本中的 GITLAB_URLTOKEN, TARGET_DIR是保存的本地路径

  4. 执行脚本:

    复制代码
    chmod +x clone_all.sh
    ./clone_all.sh

三、ip地址变更(其他)

gitlab服务器更换新的ip地址后,拉取代码的地址ip没有自动改变,会导致无法拉取代码。解决方法四修改下配置文件中的ip地址即可。

修改gitlab配置文件gitlab.yml

vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

修改gitlab.rb

vi /etc/gitlab/gitlab.rb

重启gitlab服务

sudo gitlab-ctl restart

四、声明

本文档旨在提供技术参考,由于技术更新迭代快且编者水平有限,内容可能存在疏漏或表述不当之处。

若您在阅读过程中发现任何错误、疑问或改进建议,欢迎评论

我将及时核实并优化内容,感谢您的支持与包容!

相关推荐
我一定会有钱6 天前
打造完美工作流:Git 配置”一次推送,三端同步”(Gitee/GitCode/GitHub)
开发语言·windows·vscode·搜索引擎·gitlab·github·visual studio code
LXY_BUAA6 天前
Git_在飞牛中部署 GitLab_20260817
git·gitlab
Jeanyia8 天前
GitLab 配套 Git 常用命令
git·gitlab
极小狐9 天前
极狐GitLab 补丁版本:19.2.1、19.1.3、19.0.5
网络·安全·gitlab·极狐gitlab·安全更新·补丁版本
rustfs10 天前
GitLab 如何与 RustFS 集成?
分布式·rust·gitlab
郝亚军11 天前
gitlab常用命令
gitlab
xixingzhe215 天前
Java 使用 GitLab4J 实现 WebHook
gitlab
童槿顏丶16 天前
GitLab部署到Linux
linux·运维·gitlab
InfinitePlus17 天前
Gitlab docker版本安装
docker·容器·gitlab
进击切图仔17 天前
GitLab 新用户创建与项目授权操作指南
gitlab