不知道大家有没有过相同的感受(PS:不管你们是不是这样,我就是这样子 🤪🤪🤪),github 经常访问不了,只能搭梯子才稳定,用 gitee 来代替但是感觉生态又没有 github 活跃
这个时候,ssh
就登场了,用 ssh
的方式只维护一套代码来同时提交 github 和 gitee;可能会有人之前没太关注过使用https
和使用ssh
的来 clone 代码的区别,此处引用下其他朋友的一段话
HTTPS 只需要复制链接,然后到 git Bash 输入 clone 命令即可将项目克隆到本地,但是每次 fetch 和 push 代码都需要输入账号和密码;而使用 SSH,默认每次通信无需输入账号密码,但需要在克隆之前先配置和添加好 SSH key,添加 SSH key 的前提是,你必须是这个项目的拥有者
生成 SSH 公钥
打开 Git bash
的终端,执行命令
# "~/" 代表根路径 C:\Users\Administrator,校验时会默认搜索此路径
# 这里的名字可以根据需要来定义,不一定要是邮箱,
# 可以多个git源使用同一个ssh key,也可以多次执行命令,生成多个key来分别配置使用
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
执行之后按照提示完成三次回车,即可生成 ssh key
可以通过查看根路径中.ssh
文件夹的.ssh/id_rsa.pub
文件内容,或者输入 cat ~/.ssh/id_rsa.pub
;获取到你的 public key
配置 SSH 公钥
- 复制生成后的
ssh key
,通过 github 和 gitee 中的 ssh 设置将生成的public key
添加到账户中 - 可以通过在终端输入
ssh -T git@gitee.com
来验证是否添加成功,这里的git@gitee.com
根据可以根据git
仓库的ssh
地址域名来输入,首次使用需要确认并添加主机到本机SSH
可信列表,就像下面这样
The authenticity of host 'github.com (20.205.243.166)' can't be established.
ECDSA key fingerprint is SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
输入 yes
,若返回 Hi XXX! You've successfully authenticated, but Gitee.com does not provide shell access.
内容,则证明添加成功。
配置本地仓库
- 使用
ssh
的方式clone
项目
git clone git@github.com:仓库地址
- 添加 remote 地址
git remote set-url --add origin 另一个仓库的git ssh地址
# 如果添加地址有问题,可以使用如下命令删除
git remote set-url --delete origin git仓库地址
通过 git remote -v
查看是否添加成功,如果有刚添加的地址也就证明添加成功。
如果第一次推送不上去,则使用 git push origin master -f
强推
到这就ok了,git跟gitee从此随心换😏😏
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。