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

四、声明

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

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

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

相关推荐
-KamMinG12 小时前
“从零到一:使用GitLab和Jenkins实现自动化CI/CD流水线”
自动化·gitlab·jenkins
柯南二号14 小时前
【Gitlab】Ubuntu 20.04服务器部署Gitlab
git·gitlab
QX_hao14 小时前
【gitlab】--安装部署
gitlab
Echoo华地1 天前
GitLab升级后仓库镜像信任证书导入问题
证书·gitlab·trust store·certificate·信任库·仓库镜像
一念一花一世界1 天前
DevOps实战(4) - 使用Arbess+GitLab+SourceFare实现Java项目自动化部署
gitlab·tiklab·arbess·开源cicd工具·sourcefare
赵孝正1 天前
GitLab 分支管理与 Push 问题全解析
大数据·elasticsearch·gitlab
wjs0402 天前
Git常用的命令
java·git·gitlab
至善迎风2 天前
版本管理系统与平台(权威资料核对、深入解析、行业选型与国产平台补充)
git·gitee·gitlab·github·svm
高旭的旭2 天前
Gitlab 配置自定义 clone 地址
svn·ssh·gitlab·code
一念一花一世界2 天前
DevOps实战(3) - 使用Arbess+GitLab+Hadess实现Java项目自动化部署
gitlab·jenkins·tiklab·arbess·开源cicd工具