大家好,我是 执念,最近很多开源项目让一个本该纯粹的地方混入了政治色彩。例如 Node 还有 React 这些超明星级的项目
目前来看 React 的issues 已经沦陷了,一个原本纯粹的地方为什么会有了政治?
如果开源项目涉及了政治,那么github 可能也不远了。为了避免造成不必要的损失,因此我昨晚连夜把自己在github 上的项目都同步一份到了 gitee,并且今天写下了这一份指南。
我也建议大家未雨绸缪,对自己的github账户进行备份,尽量不要让我们受到损失。
同步主要分为现有仓库同步以及未来代码同步两个部分。
现有仓库同步
这一步其实 gitee 官网已经集成了一键导入的功能。(https://gitee.com/help/articles/4284)
一共分为3个步骤:
1.从 + 号找到 从 Github/Gitlab导入仓库
2.授权 gitee github 权限
3.授权后可以看到这样一个 tab 页面选项,我们选择 导入当前页面所有仓库
gitee 就会自动帮我们导入在 github 的项目,等待一些时间就好。
导入完成之后,所有的项目都是私有权限,因此也不用担心自己原本在 gihtub 上的私有仓库权限泄漏。这里我就不放图片了
未来代码的同步
虽然我们已经把现有的仓库全部同步到了gitee ,但是我们本地仓库的源还是 github 的,因此还需要对这部分未来增量代码做处理。
方案一:增加 remote 源
这个方案其实很简单,一般来说在提交开源项目想要合入开源项目最新代码的时候肯定用到过。
git remote add <name> <url>
1.在你原来的 github 仓库下添加远端仓库
例如:git remote add gitee [[email]git@github.com[/email]](mailto:git@github.com "git@github.com")
:hua1995116/mmt.git
添加后可以看到这样的:
2.提交当前的增量代码
git push origin // 提交到 github
git push gitee // 提交到 gitee。
方案二:增加 push 源
1.删除方法一的 gitee 源 (还没有操作方案一的忽略这个步骤)
git remote rm gitee
2.添加 push 源
git remote set-url --add origin [email]git@github.com[/email]:hua1995116/mmt.git
3.提交代码
git push origin
为了省去第二步繁琐,可以自己配置一个脚本进行快速添加。(前提是你的gihtub 账户名字和 gitee 的账户名字是一样的)
效果:
方案三: 使用github action
1.在仓库根目录创建 .github/workflows 目录
2.创建 gitee-sync.yml
3.在 Github 需要同步的仓库上添加 3 个 secrets: (Setting -> Secrets -> New repository secret)
GITEE_USER, 例如我的 gitee hua1995116
GITEE_PRIVATE_KEY,获取方法(如果已有,直接设置) - Gitee公钥对应的私钥(https://gitee.com/profile/sshkeys)
新建 private key 方法:
生成 SSH 公钥(https://gitee.com/help/articles/4181#article-header0)
将 SSH 公钥添加到 Gitee 公钥( https://gitee.com/profile/sshkeys)
同时将公钥添加到 Github 项目的 secrets 中;
GITEE_TOKEN,获取方法 - Gitee对应的用于创建仓库的token(https://gitee.com/profile/personal_access_tokens)新建 token 方法:
打开上面的链接并登录 Gitee, 点击“生成新令牌”,
添加描述,比如用处 - Github 仓库同步到 Gitee;
权限默认全选,点击提交,显示出生成的 token 值;(注意保存,需要填到 Github 的 secrets 中)
最后后续所有提交,可以利用 github action 自动同步。
总的来说,方案1和2比较简单,但是1可以控制提交源but需要提交两次,2无法控制
3github action 被制裁了就gg
当然, github也 发布了声明依旧会无国界地提供服务。
但是,万一呢,反正我不敢赌,还是提前做好两手准备,毕竟已经有人中枪了
所以,
备份数据很重要!
备份数据很重要!
备份数据很重要!