git同时配置github和gitee
背景
之前一直使用的是 gitee 进行笔记和代码的备份,为什么不用 github 呢?
因为 gitee 更快,连接更加稳定。
为什么又要使用 github 呢?
因为突然看见一篇文章说 gitee 开始被监管,出于备份多更安全的原则,所以觉得还是有必要再增加一个备份。
需求
一次提交,可以同时上传到 github 和 gitee。
环境
windows10 (以windows10为例,Linux除了路径略微区别,没指出的都一致)
git bash
用到的知识
1.基本的 git 命令
2.了解文件路径,即相对路径,绝对路径
3.使用过 github 或者 gitee (如果你都没有使用过其中之一,我想你应该不会有这个需求)
创建多个ssh key
一个github账号可以有多个设备的 ssh-key 与其关联。在不同的设备上使用同一个账号,会生成不同的ssh-key。
即一个github账号可以与多个设备进行关联。
同一台设备也可以由多个 github 账号生成多个不同的 ssh-key。将每个账号生成的 ssh-key 与对应的 github 账号进行关联。
即一个设备可以生成多个 ssh-key 与多个 github 账号进行关联。
对于我来说我有一个 gitee 账号,和一个 github 账号,且两个账号是使用的不同邮箱;也有两台设备:一个台式,一个笔记本(Ubuntu),所以创建多个 ssh-key 对我来说是十分有必要的。
查看已经存在的ssh key
打开git bash,输入:ll ~/.ssh,查看已经生成的 ssh-key

像我这里就有两组生成的 ssh-key 分别是 gitee 的 ssh-key 和 github 的 ssh-key,其中 github_id_rsa 为 ssh-key 密钥的私钥部分,github_id_rsa.pub 为 ssh-key 密钥的公钥部分。当然你们的 ssh-key 文件的名称可能和我不一致,因为这是我自己重命名了的。
ssh-key 密钥的位置的位置在:~/.ssh/github_id_rsa。
生成ssh-key
生成一个 Github 用的 SSH-Key, 使用命令:
ssh-keygen -t rsa -C '[邮箱]' -f ~/.ssh/github_id_rsa
然后按三次enter即可。
邮箱使用自己的github账号的邮箱即可,邮箱是生成的 ssh-key 公钥的名称,并不强制要求为某个邮箱,甚至可以不是邮箱。
那为什么要使用邮箱来标识一个ssh-key?
因为github账号或者gitee,gitlab都是使用邮箱来注册的,你有可能不只一个这账号,所以使用自己的邮箱账号可以知道这个ssh-key是由哪一个账号生成的。
这里的密钥文件名也可也按照自己的喜好命名:
github 代表这个 ssh-key 是一个 github 的 ssh-key , id_rsa 是因为默认生成的ssh-key的文件名就是id_密钥类型,即这个rsa 就是密钥的类型。所以使用 github_id_rsa。
-t 选择生成密钥的类型:rsa、 ed25519、dsa等
-C 指定此密钥的备注信息,一般推荐使用自己的账号的邮箱作为标识
-f 指定密钥目录位置, 默认为当前用户路径下的 .ssh 隐藏目录, 也就是 ~/.ssh/目录下 , 同时默认密钥文件名以 id_密钥类型 开头.
windows中为:C:\Users\用户名.ssh
Linux中:
如果是 root 用户, 则在 /root/.ssh/目录下 , 若为其他用户, 则在/home/username/.ssh/目录下。
(username是你自己的用户名)下图是三次Enter的位置

查看ssh-key
查看ssh-key公钥,使用命令: cat ~/.ssh/密钥文件名.pub,.pub代表该密钥是一个ssh-key公钥。
查看ssh-key私钥,使用命令:cat ~/.ssh/密钥文件名
也可以使用记事本,Notepad++ 等打开查看
创建配置文件
在 ~/.ssh/ 目录下创建一个 config 文件,输入:vim ~/.ssh/config,然后在配置文件中添加:
1 | # Host和HostName填写 Git 服务器的域名 |
将ssh公钥与账号关联
将对应账号生成的 ssh-key 与对应的账号进行关联。进入自己的github主页,将生成的ssh公钥进行添加即可。
测试
输入ssh -T git@github.com,测试是否已经完成了ssh公钥添加,
如果是第一次需要输入:yes,进行确认将主机host添加到到本机SSH可信列表know_list.

如果不是第一次则会看见:

将本地仓库同时git推送到gitee和github
前面说了,一直使用的是 gitee 作为仓库,那么肯定本地已经存在了一个仓库。
当然可能你本地的仓库是 github 的,但是无所谓,只要是本地已经有了一个仓库,就可以按照这个方法操作。
创建一个仓库
这里创建的是 github 仓库,你们自己可以按照自己的需求创建。
唯一要注意的是:前往不要勾选 Add a README fiel。
因为勾选之后会导致 github 会进行一次默认的提交,生成一个 默认的 branch (以前是master,现在是 main),导致和你本地的 branch 名不一致,导致无法正常提交。(当然不是没办法,但这不是本文的讨论范畴)
当然 仓库名 也最好保持一致。

更改本地仓库的配置文件
复制刚创建仓库的 ssh 链接,
进入到自己本地仓库的文件夹(即进行了git init或者git clone的文件夹),
windows中直接使用 记事本打开即可。
Linux执行:sudo vim .git/config
在下面输入:url = 刚刚复制的ssh链接

以后每次提交,都会同时往gitee和github提交。
更多情况
如何将一个项目同时提交到GitHub和Gitee(码云)上 - 知乎 (zhihu.com)
Git使用同一个邮箱生成同一个公钥SSH-Key并配置连接Gitee和GitHub,数次失败并尝试亲测可行!_濮濮噗噗BOOM的博客-CSDN博客