一个项目同时托管到github和gitee或者gitlab

日常造轮子,我们会把项目托管到 github, 奈何总是时不时访问不了(被墙),就想到了同时托管到gitee,下面分享一下探索的过程,欢迎讨论:

前提是:两个账户已分别绑定 git 推送权限

1. 生成秘钥

# 分别生成两个平台的
ssh-keygen -t rsa -C "youremail" -f ~/.ssh/id_rsa_github
  windows
ssh-keygen -t rsa -C "youremail" -f ./.ssh/id_rsa_gitee

cd .ssh
touch config
vi config

Host github.com
  HostName github.com
  PreferredAuthentications publickey
  IdentityFile /c/Users/xn213/.ssh/id_rsa_github
  user xn213
Host gitee.com
  HostName gitee.com
  PreferredAuthentications publickey
  IdentityFile /c/Users/xn213/.ssh/id_rsa_gitee
  user xn213

2. 添加远端仓库

git remote add github git@github.com:xn213/koa-app.git
git remote add gitee git@gitee.com:xn213/koa-app.git

yarn commit

# 分别提交
git push github
git push gitee

3. 升级省事: 同时提交到 github 和 gitee

修改 .git/config

[remote "origin"]
	url = git@github.com:xn213/koa-app.git
	url = git@gitee.com:xn213/koa-app.git
	fetch = +refs/heads/*:refs/remotes/origin/*

这时第一次提交到 gitee, alias: gp == git push 会提示如下图,

2021_06_06_git-push-to-both-github-gitee

由于上面分别提交到 github 和 gitee, 设置了 git remote gitee..., 要使用如下命令提交

git push --set-upstream origin master

此命令会在 .git/config 中添加如下字段

[branch "master"]
	remote = origin
	merge = refs/heads/master

同理,也可以托管到 gitlab 等平台, 你有没有更好的轮子工具呢?

git
102 views
Comments
登录后评论
Sign In
·

frowning 为啥要自己搞自己,托管到 github 就行了,如果担心数据安全的问题,可以搭建私有仓库 gitlab 或者用云厂商提供的代码托管服务就好了~

·

提交到GitHub就好,Gitee那边可以绑定Github仓库直接同步的