一、准备工作
1. 环境要求
- 已安装 Git(版本 2.10+)
- 本地磁盘空间充足(根据仓库总大小预估)
- 已配置 SSH 密钥到 GitLab(推荐方式)
2. 获取 GitLab API 访问权限
- 登录 GitLab,点击右上角头像 → Settings
- 左侧菜单选择 Access Tokens
- 创建 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
执行步骤:
-
保存脚本为
clone_all.sh
-
安装依赖工具:
bashsudo apt install jq # Ubuntu/Debian
-
修改脚本中的
GITLAB_URL
和TOKEN, TARGET_DIR是保存的本地路径
-
执行脚本:
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
四、声明
本文档旨在提供技术参考,由于技术更新迭代快且编者水平有限,内容可能存在疏漏或表述不当之处。
若您在阅读过程中发现任何错误、疑问或改进建议,欢迎评论
我将及时核实并优化内容,感谢您的支持与包容!