前言
本文参考:仓库镜像管理 ( 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与嵌入式知识,软件,工具等内容,欢迎大家关注。