前言

最近又看到Github在肆意封号了,很明显,这和开源精神先违背,被封号的人贡献直接被屏蔽归零。

而很多使用者压根没有进行备份的习惯,这显然存在风险。

所以本文介绍了批量备份Github仓库的一些方法。

值得一提的是,我在21年7月,联系过GitHub客服,当初号称解封了我的Action,近期发现当初Github就他妈在放屁,压根没解封,真你麻痹恶心

参考文章 https://www.blueskyxn.com/202107/4731.html

实验仓库 https://github.com/BlueSkyXN/TencentCloud-Order/actions

同台转储法

在Gitlab、Gitee等Github的同行平台,都提供了快速导入的方法,同时还支持私有仓库的转储。

不过Gitlab在批量导入一定量的仓库后,会出现无法导入的情况,不适合量特别大的用户。

脚本备份法

我参考了 https://github.com/estrm/onemove/tree/master/github_repository_backup

修改出一个自用版本,可以根据思路拿去改改备份用 https://github.com/BlueSkyXN/Github-Backup

需要注意的是,备份Org组织时,由于不同页面(用户和组织)的仓库页面源代码格式不同,所以同款脚本运行时需要大量回车跳过,但是最终还是能备份的下来的。

如果你不会修改、使用这个脚本,那么建议用其他方法。

另外这个方法不支持私有仓库

你需要手动挑选私有仓库,用其他方法备份

GIT手动备份法

可以参考这篇文章 https://itsmycode.com/support-for-password-authentication-was-removed-github/

首先要获取登陆密钥,目前不支持密码登陆。

在如图所示的网址,找到PCT,也就是Person Access Tokens,个人访问令牌

然后,新建一个令牌,时间随意,然后权限自己挑,不想挑就拉满咯,记得保存好。

然后是SSH页面,需要先配置一个用户名和邮箱

git config --global user.name "your_github_username"
git config --global user.email "your_github_email"
git config -l

需要登陆的时候会问你要用户名和Token

git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY

然后Username就是用户名,Password用刚刚的Token

然后一定要在成功的情况下运行这个才能缓存,不成功是不行的

git config --global credential.helper cache

同时他也提供了直接用的方法

git remote set-url origin https://@github.com//.git

然后

git clone https://:@github.com//.git

当然,对于公有仓库来说,不需要登陆,直接备份即可

Desktop手动备份法

使用GitHub Desktop应用程序,直接复制仓库到本地。注意目录内不能有东西。

直接备份法

直接找到仓库页面,绿色code按钮-local-downloadzip即可下载zip压缩包