前言
本文参考:仓库镜像管理 ( Gitee <-> Github 双向同步) – Gitee.com
最近在将之前分享的源码都整合到Gitee与Github中,以便在网站中展示。
Gitee与Github各有优劣。Gitee国内访问速度快,对国内分享十分友好;Github则在全球都非常流行,在Github上分享能被更多人看到,但国内用户访问困难。所以,最好的办法是在Gitee和Github中同步发布,两者仓库自动双向同步,这样能充分利用两个平台的优点,是最优的代码开源方案。
一. 在Gitee和GitHub分别新建仓库
建议两边仓库使用同一个名称。
二. 设置Gitee自动向Github同步
打开要同步的Gitee仓库 → 管理 → 仓库镜像管理 → 添加镜像 → 关联Github账号。

选择要与哪个Github仓库同步 → 设置私人令牌。

2.1 如何申请 GitHub 私人令牌?
GitHub 私人令牌用于授予 Gitee 读写 Github 仓库的权限。
你可以通过以下方式申请 GitHub 私人令牌:
-
登录与 Gitee 绑定的 GitHub 帐号;
-
通过路径「用户头像」→「Settings」进入「Developer setting」;
-
选择「Personal access tokens」选项后点击「Generate new token」;

-
「Note」字段可以随意填写;例如,Gitee_Mirror;
-
「Select scopes」字段请根据你的需求进行勾选;
-
repo字段为必选字段,请您直接勾选;
-

-
admin:repo_hook字段为可选字段,用于自动生成 webhook;当您需要 Gitee 自动从 GitHub 同步仓库时,建议您勾选。
-
点击「Generate token」生成私人令牌;
-
复制私人令牌并妥善保管。

2.2 为什么推送到 GitHub 会失败?
如果你的 GitHub 帐号启用了 Keep my email addresses private(对我的电子邮件地址进行保密)功能,且在 Gitee 上使用你的邮箱 push 代码的话,通过 Gitee 推送将会受到该功能限制。
点击Github头像 → Settings → Emails → 取消勾选Keep my email addresses private。
建议试一下从Gitee向Github同步,出现问题再来改这里。

2.3 更改Github主分支默认名称
受诸如LGBT等运动的影响,Github将新仓库的默认分支名称从原来的master改为了main,而Gitee顶住了压力,默认分支名称还是master,所以要实现双向同步,需要将Github中的默认分支名称改为master。
操作步骤如下:点击Github头像 → Settings → Repositories → 需要将Github中的默认分支名称改为master → master → Update。

三. 设置Github自动向Gitee同步
还是在Gitee仓库这边设置,如下图所示。

四. 最终效果——双向同步

双向镜像指对同一个 GitHub 仓库同时配置了两种镜像。
配置双向镜像后,你在任意一个平台上提交的代码都将被同步到另一个平台。
Note:双向镜像目前存在代码丢失的风险,请谨慎使用!
为避免代码丢失,使用 双向镜像 功能时,请遵循以下规则
-
不要同一时间在 Gitee 仓库和 GitHub 镜像仓库提交代码; -
尽量保证 Gitee 仓库和 GitHub 镜像仓库的提交代码间隔时间大于 30 分钟。
如果本文对你有所帮助,欢迎点赞、转发、收藏、评论让更多人看到,赞赏支持就更好了。
如果对文章内容有疑问,请务必清楚描述问题,留言评论或私信告知我,我看到会回复。
徐晓康的博客持续分享高质量硬件、FPGA与嵌入式知识,软件,工具等内容,欢迎大家关注。