Blog
  • README
  • Daily-life
    • 关于简历
    • 如何做好劳逸结合
    • 探索历程
    • 如何走出个人舒适圈
    • 怎样提升领导能力
    • 个人装换机之 Windows 系列
    • 工作之余 - 技能修炼
    • Search: 业余的专业搜索技能
    • 自我迭代
    • 优秀的自我介绍很重要
    • 工作心得
  • Checklist
    • 开发自检清单
    • 代码教鞭:不值得犯第二次的错
  • Docs
    • Bash: 入门重点
    • CSS 特殊用法
    • ChatGPT 使用总结
    • Console
    • Corn 表达式
    • DOS command
    • Emoji: 供日常学习、查询及使用
    • Git 命令集
    • GitBook
    • Github Action
    • Github
    • HTTP: 小知识巧总结
    • JS 精选
    • Jest learning manual
    • License: 解说
    • Mac
    • Markdown
    • 小程序
    • NPM and Plugin Guide
    • 渐进式 Web 应用(PWA)
    • Regexp
    • Rollup
    • SEO
    • SQL
    • 专业名词
    • Testing
    • TypeScript
    • Vue - fragment knowledge
    • Web API
    • 站点:那些可以经常逛逛的开发工具网站
    • Webpack
    • Windows 之路遇精彩
  • Project
    • README 模板:Project Name
    • 借鉴-项目规范
  • React
    • Antd typescript
    • React: 总结整理
    • React Hook - 速览
    • React-生命周期方法转 Hooks-1
    • React: 生命周期方法转 Hooks-2
    • Redux
    • React router
    • useEffect
  • Share
    • StartToGit
    • 3步自动同步你的 Github 仓库到 Gitee 仓库
    • 软考高级“信息系统项目管理师”考试忠告
    • 轻松使用WebWorker,解放耗时较大的算法代码
  • Tool
    • 最好的工具: 理解并使用那些耳目一新的巧工具
    • IntelliJ IDEA
    • VS Code:发挥应有的效率
  • Office
    • Excel 常用操作
    • Word: 文档操作精选技巧
由 GitBook 提供支持
在本页
  • 先定个小目标,然后再分解目标
  • 了解 Github Actions
  • 先上菜,再细品
  • 自动同步仅需3步
  • GitHub Actions 对于个人账号,每个月有 2000 分钟的免费额度
  • 真实例,见效果
  • 注意事项

这有帮助吗?

  1. Share

3步自动同步你的 Github 仓库到 Gitee 仓库

上一页StartToGit下一页软考高级“信息系统项目管理师”考试忠告

最后更新于3年前

这有帮助吗?

相信有很多以 Github 为主阵地的开发者,都同样拥有一个镜像备份的心。

比如我就偶尔使用 Gitee 同步 Github,对 Gitee 已有强大的“从 Github/Gitlab 导入仓库”和“项目名旁边的刷新按钮点击同步”功能非常满意,但是认识到 Github Actions 的强大和便捷后,仍忍不住要搞一些小轮子(小动作)。

最终发现:站在巨人的肩膀上真香,感谢 项目让这个备份的目标又进一步。

先定个小目标,然后再分解目标

Github 仓库每一次提交后,通过 Github Actions 自动将仓库同步到 Gitee 上。

了解 Github Actions

(已了解的直接跳过)

  • Features • GitHub Actions

  • GitHub 操作的工作流程语法 - GitHub Docs

  • GitHub Actions 入门教程 - 阮一峰的网络日志

  • An Introduction to Github Actions

先上菜,再细品

只有不到 40 行的代码,还是直接上吧。

  • 点击查看仓库上的代码文件

# 通过 Github actions, 在 Github 仓库的每一次 commit 后自动同步到 Gitee 上
name: sync2gitee
on:
  push:
    branches:
      - master
jobs:
  repo-sync:
    env:
      dst_key: ${{ secrets.GITEE_PRIVATE_KEY }}
      dst_token: ${{ secrets.GITEE_TOKEN }}
      gitee_user: ${{ secrets.GITEE_USER }}
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        with:
          persist-credentials: false

      - name: sync github -> gitee
        uses: Yikun/hub-mirror-action@master
        if: env.dst_key && env.dst_token && env.gitee_user
        with:
          # 必选,需要同步的 Github 用户(源)
          src: 'github/${{ github.repository_owner }}'
          # 必选,需要同步到的 Gitee 用户(目的)
          dst: 'gitee/${{ secrets.GITEE_USER }}'
          # 必选,Gitee公钥对应的私钥,https://gitee.com/profile/sshkeys
          dst_key: ${{ secrets.GITEE_PRIVATE_KEY }}
          # 必选,Gitee对应的用于创建仓库的token,https://gitee.com/profile/personal_access_tokens
          dst_token:  ${{ secrets.GITEE_TOKEN }}
          # 如果是组织,指定组织即可,默认为用户 user
          # account_type: org
          # 直接取当前项目的仓库名
          static_list: ${{ github.event.repository.name }}
          # 还有黑、白名单,静态名单机制,可以用于更新某些指定库
          # static_list: 'repo_name,repo_name2'
          # black_list: 'repo_name,repo_name2'
          # white_list: 'repo_name,repo_name2'

自动同步仅需3步

  1. 在 Github 需要同步的仓库上添加 3 个 secrets: (Setting -> Secrets -> New repository secret)

    • 新建 private key 方法:

      • 同时将公钥添加到 Github 项目的 secrets 中;

    • 新建 token 方法:

      • 点击上面的链接并登录 Gitee, 点击“生成新令牌”,

      • 添加描述,比如用处 - Github 仓库同步到 Gitee;

      • 权限默认全选,点击提交,显示出生成的 token 值;(注意保存,需要填到 Github 的 secrets 中)

GitHub Actions 对于个人账号,每个月有 2000 分钟的免费额度

普通的一次 GitHub Action 执行需要 2-3 分钟,2000 / 3 = 666次提交,足足满足一天 22 次的改动提交,几乎没有任何顾虑。

当账号使用量达到 75% 的时候,Github 会发送邮件提醒:

You've used 75% of included services for the xxx account

真实例,见效果

注意事项

在 账户中,通过 +下拉列表中的 “从 Github/Gitlab 导入仓库”,导入要同步的 Github 仓库;

GITEE_USER,比如个人的 Gitee user id:

GITEE_PRIVATE_KEY,获取方法(如果已有,直接设置) -

GITEE_TOKEN,获取方法 -

复制 ,到 Github 仓库下的 .github 文件夹的 workflows 文件夹下,即 [project-folder]/.github/workflows/sync2gitee.yml,并提交到 Github 仓库。(这次操作就会触发同步的 Action)

后续在 Github 仓库上提交改动(如修改 README.md),都可以到 上对应仓库验证是否同步成功。

从 Github 仓库 Action

到 Gitee 仓库

Yikun/hub-mirror-action
https://github.com/features/actions
https://docs.github.com/cn/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions
http://www.ruanyifeng.com/blog/2019/09/getting-started-with-github-actions.html
https://gabrieltanner.org/blog/an-introduction-to-github-actions
sync2gitee.yml
Gitee
steper
Gitee公钥对应的私钥
生成 SSH 公钥
将 SSH 公钥添加到 Gitee 公钥
Gitee对应的用于创建仓库的token
sync2gitee.yml
Gitee
关于 GitHub 操作的计费
查看个人已用量
gyx8899/blog
steper/blog
Actions: Use actions from private and internal repositories