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

四、声明

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

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

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

相关推荐
荔枝吻1 天前
【保姆级喂饭教程】GitLab创建用户规范,分支开发规范,提交日志规范
gitlab·git规范·分支规范
云畅新视界2 天前
从 CODING 停服到极狐 GitLab “接棒”,软件研发工具市场风云再起
人工智能·gitlab
hwj运维之路2 天前
GitOps实践指南:GitLab CI/CD + ArgoCD 实现 Kubernetes 自动化部署
ci/cd·gitlab·argocd
世事如云有卷舒4 天前
Ubunt20.04搭建GitLab服务器,并借助cpolar实现公网访问
linux·服务器·gitlab
HalukiSan6 天前
如何提交PR
git·gitlab·github
东林牧之6 天前
CICD[软件安装]:docker安装gitlab
docker·容器·gitlab
东林牧之6 天前
CICD[导航]、docker+gitlab+harbor+jenkins从安装到部署
docker·gitlab·jenkins
一世一生命7 天前
Windows下Gitlab多账号(3个及以上)SSH配置
运维·ssh·gitlab
裁二尺秋风7 天前
CI/CD — Pipeline的使用以及Blue Ocean多分支流水线的使用方法
ci/cd·gitlab·jenkins
北海之灵7 天前
docker desktop部署本地gitlab服务
docker·容器·gitlab