关于 gitcode 迁移的处理 - 批量仓库备份(仅限Mac或Linux,仅限 ssh key的登录方式)
Gitcode 迁移让人遗憾,于是备份所有仓库,对于限制仓库大小的托管平台都不感冒,不得不放弃这个托管平台,重新回到 GitLab.
备份过程希望对其他人有帮助。
- 在终端中打开本地打算备份仓库的目录
cd backup-dir
- 收集仓库地址
在浏览器中打开自己在 gitcode.net 的仓库列表页面,即 https://gitcode.net/users/你的用户名/projects
然后打开浏览器的控制台,粘贴输入以下代码。(注最好是chrome浏览器)
jQuery('.project-details .project-title h 2 a').each(function(index, el){console.log(el.href);})
这样就可以把第一页的仓库地址收集好了。然后用鼠标切换下一页,重新执行上面的代码获取新列表页面的仓库地址,直到所有的仓库地址全部收集完。
- 建立仓库地址列表文件
把收集到的仓库地址按每行一个仓库整理成文件,例如 repo-list.txt
比如一个仓库的http地址为 https://gitcode.net/username/repo-name
需要修改为 git@gitcode.net:username/repo-name
内容示例如下: (注意需要把 https 地址替换为 git 地址)
git@gitcode.net:username/repo-name1
git@gitcode.net:username/repo-name2
- 创建批量拉取脚本
假如脚本名称为 mass-pull.sh, 内容如下
#!/usr/env bash
input="/Volumes/ExSSD/GitCodeRepos/repos-list.txt"
while IFS= read -r line
do
git clone "$line"
done < "$input"
- 在当前备份的目录使用终端执行以下命令就可以批量拉取到本地了
bash ./mass-pull.sh