vlambda博客
学习文章列表

自动镜像你的 GitHub 仓库

GitHub 仓库下载本来就慢,再加上偶尔来的宕机让我有了些危机意识。

  • 要是真的仓库数据因为宕机发生了数据丢失?
  • 要是 GitHub 全站被禁止访问了?(本身 gists 和 raw.github 域名目前在国内是不可以访问的)

「做个备份吧」!

接下来的内容告诉你如何配置,让 GitHub 的 workflow 帮你定时自动同步代码到 Gitee。

该方法基于 action https://github.com/Yikun/hub-mirror-action 实现。

先 Fork 仓库 https://github.com/ShixiangWang/sync2gitee[1],或者你自己建一个仓库进行以下步骤。

  1. 基于 SSH 配置公钥和私钥,[参考](https://github.com/ShixiangWang/sync-deploy#%E5%87%86%E5%A4%87%E4%B8%8E%E9%85%8D%E7%BD%AE[2])或网上N多资料。

  2. 将私钥传到 GitHub 仓库,通过设置中的 Secrets 创建一个 GITEE_PRIVATE_KEY 变量,将私钥内容拷贝到值区域

    自动镜像你的 GitHub 仓库
  3. 同理将公钥传到 Gitee 上,这样就可以实现 GitHub 和 Gitee 的通信

    自动镜像你的 GitHub 仓库
  4. 在 Gitee 上创建一个私人令牌(token),这个记得保存,因为它只会出现一次

    自动镜像你的 GitHub 仓库

  5. 类似第 2 步,创建一个 GITEE_TOKEN 变量,将私人令牌作为值粘贴进去。

这样配置就完成了。

如果你是自己创建的仓库,请拷贝我定义的 workflow https://github.com/ShixiangWang/sync2gitee/blob/master/.github/workflows/sync.yml[3]

你还可以根据自己的实际情况修改配置,以下是有用的参考:

  • https://github.com/Yikun/hub-mirror-action

  • https://docs.github.com/en/actions

  • crontab的语法规则格式(每分钟、每小时、每天、每周、每月、每年定时执行 规则)[4]

目前 hub-mirror-action 不支持 > 100 个仓库的同步,如果你需要仅设置仓库白名单或黑名单,请参考第一条链接。

在线阅读我的说明:https://shixiangwang.github.io/sync2gitee/[5]

Reference

[1]

https://github.com/ShixiangWang/sync2gitee: https://github.com/ShixiangWang/sync2gitee

[2]

参考: https://github.com/ShixiangWang/sync-deploy#准备与配置

[3]

https://github.com/ShixiangWang/sync2gitee/blob/master/.github/workflows/sync.yml: https://github.com/ShixiangWang/sync2gitee/blob/master/.github/workflows/sync.yml

[4]

crontab的语法规则格式(每分钟、每小时、每天、每周、每月、每年定时执行 规则): https://blog.csdn.net/xinyflove/article/details/83178876

[5]

https://shixiangwang.github.io/sync2gitee/: https://shixiangwang.github.io/sync2gitee/