GitHub 和 Gitee 上的项目可以通过多种方式实现代码同步,以确保在 GitHub 上的仓库代码发生变动时,Gitee 上的代码也能相应更新。
同步的方法有多种:
1.使用 Gitee 的仓库镜像管理功能。
2.使用 GitHub Actions 自动同步。
3.使用定时任务和脚本。
4.手动同步。
以下为第一种方法的操作步骤:
Gitee操作
1.登录 Gitee 账户,找到需要镜像的仓库。点击仓库页面左上角的 “管理” 选项,进入仓库管理页面。
2.在管理页面中,找到 “仓库镜像管理” 选项并点击进入。
3.点击 “添加镜像” 按钮。
4.如果Gitee 账号还没有绑定过 GitHub 账号,根据弹窗的提示绑定 GitHub 账号。
5.在 “镜像方向” 中选择 “Push” 方向,表示 Gitee 往 GitHub 方向推送
6.在 “镜像仓库” 下拉列表中选择需要镜像的仓库。
7.在 “个人令牌” 中输入 GitHub 个人令牌。(GitHub 的私人令牌中必须包含对 “repo” 的访问授权,否则添加后镜像不可用。私人令牌的获取可以按照链接的提示获取。)
8.点击 “添加” 按钮,完成镜像配置。
注意:
仓库镜像会同步分支、标签和提交记录,镜像触发的最短间隔时间为 5 分钟。若同步时间超过 30 分钟视为超时,大型仓库不建议使用镜像方式同步。
Github个人令牌获取
1.登录 GitHub 账户,点击右上角的头像,选择 “Settings”。
2.在左侧导航栏中,找到 “Developer settings” 选项并点击进入。
3.在 “Developer settings” 页面中,点击 “Personal access tokens”。
4.在 “Personal access tokens” 下有2个选项,选择Tokens (classic),点击 “Generate new token” 按钮也有2个选项,选择“Generate new token (classic)”,创建新的个人访问令牌。
“Fine-grained tokens” :该选项允许你创建具有更精细权限控制的访问令牌,适用于需要更严格权限管理的场景。不过,对于大多数常规操作,“Tokens (classic)” 已经足够使用。
5.为令牌起一个名称,以便日后识别。
6.选择令牌的权限范围。对于仓库镜像操作,通常需要选择 “repo” 权限,这样令牌才能对仓库进行读写操作。
7.设置令牌的有效期。可以选择合适的时长,例如 1 个月、3 个月或 1 年等。
8.点击 “Generate token” 按钮创建令牌,
拓展
1.若是删除 GitHub 上的原项目仓库并重建一个同名仓库后,Gitee 项目代码可以顺利同步到这个新仓库。
2.大型仓库不建议使用镜像方式同步的原因:
“大型仓库”没有严格统一的标准,但一般认为大于5000w行代码或容量超过100G的仓库即为普遍认可的大仓,可能会发生镜像同步超时,即同步时间超过30分钟。
镜像同步超时的本质是其对时间的敏感性。镜像同步需要在两个仓库之间传输大量数据,包括分支、标签和提交记录,若同步时间过长,可能会出现网络中断、数据不一致等问题,导致同步失败。对于大型仓库,数据量巨大,同步所需的时间和资源成本更高,更容易受超时问题的影响。另外,由于镜像操作会覆盖目标仓库的分支、标签和提交记录,这在大型仓库中可能导致潜在的数据丢失风险。