前言
由于众所周知的原因,在国内访问Github时常会出现不稳定的情况,为了便捷访问若能实时同步多一份代码到Gitee就最好了。
方式一:手动同步
在Gitee中绑定完成Github账户后可以选择导入仓库,导入仓库完成后在Gitee的项目主页中会出现一个同步按钮,只需点击一下即可一键同步Github对应仓库的内容。
绑定Github账户
在Gitee个人设置的基本设置中的账号信息部分可以绑定Github账户。
导入仓库
点击导航栏中的+
可以看到从Github导入仓库
的选项。
在选项卡中选择导入Github仓库
,点击导入
后等待导入成功即可。
点击同步
在已导入的仓库的仓库名右侧可以看到一个同步按钮,点击即可手动强制同步Github仓库。
方式二:分别推送
在本地Push的时候直接分别Push到Github和Gitee上。
方式三:Github Action自动同步
Github Action在官网是这样描述的
GitHub Actions is a continuous integration and continuous delivery (CI/CD) platform that allows you to automate your build, test, and deployment pipeline.
简而言之就是一种可以便捷地帮助我们自动构建、测试、部署代码的工作流。
我们可以利用在GitHub上的hub-mirror-action进行使用,能直接使用他人造好的轮子能非常方便实现我的需求。
前提设置
建议
建议按方式一先操作一遍,若直接使用hub-mirror-action
进行初次同步并创建Gitee仓库,则在Gitee的项目中不会出现强制同步仓库的按钮,也就无法手动同步仓库了。
Gitee账户绑定Github账户
这一步是为了便于同步仓库以及正确显示提交者记录。
Github账户设置
确认Github的账户设置中的Keep my email adress private
未勾选,勾选后会导致非push操作修改提交的改动在同步到Gitee后,无法正确将Github账户的提交者转换为所绑定的Gitee账户,从而出现不正确的提交者记录。
分别创建仓库
Fork hub-mirror-action仓库(非必须)
这一步是为了避免原作者这个仓库hub-mirror-action被移除后导致无法使用,于是Fork一份到自己的仓库中。
也可以直接使用原作者的仓库,可以省得反复去更新自己Fork的这份仓库。
创建SSH密钥
1 | ssh-keygent -t rsa -C github_gitee |
其中参数-t
为加密类型,-C
为注释
然后在.ssh目录下即可看到id_rsa_github_gitee
和id_rsa_github_gitee.pub
,其中id_rsa_github_gitee
为私钥,id_rsa_github_gitee.pub
为公钥。
创建Gitee私人令牌
在Gitee的设置-安全设置-私人令牌
中可以创建私人令牌,用于在同步时创建不存在的仓库。
注意:此处的Token只会显示一次,请复制并保存好。
将密钥和令牌添加到项目仓库
在项目仓库的Settings-Secrets-Action
中New repository secret
Secrets的命名建议与图中相同。
GITEE_PRIVATE_KEY
填写id_rsa密钥。
GITEE_TOKEN
填写Gitee私人令牌。
添加Workflow脚本
在仓库根目录下创建.github/workflows
目录,并将以下内容根据自己的配置自行修改,修改完成后放置在.github/workflows
目录下,脚本执行后在Action
中可以查看执行情况。
1 | name: syncToGitee |