这里我只连接了两个站点的远程仓库,一个是国内的Gitee,另一个是Github,这两个站点的连接方式主要有两种,第一种就是通过https来连接远程仓库,另一种是通过ssh公钥来连接,这两个站点练接的大致过程都是一样的,只有一些小细节要注意
首先来讲Gitee的远程仓库
- Gitee
- HTTPS的方式
- 创建一个testGit的空文件夹,然后在该文件夹下进入bash窗口,完成init以及用户级别的设置(这里就不演示了)
- 在gitee中创建一个用于联系的仓库,如下
- 关联你的gitee远程仓库,指令如下:
-
git remote add origin https://gitee.com/keshi01/my-test01.git
其中,后面的url是自己仓库的,图示如下
-
在Bash中输入上述代码后,我们进行远程仓库的拉取
git pull origin master
输入完之后回车,这时候会弹出窗口让我们进行登录,如下所示然后,我们输入自己gitee的用户名和密码,即可完成远程仓库的拉取
-
-
接下来是远程仓库的推送
-
首先,我们随便写一个文本文件,比如test.txt,随便加点内容,然后,对新的test.txt完成提交,指令如下
git add . git commit -m "这里是注释,必须添加"
-
完成之后,在Bash中,输入如下指令完成推送
git push origin master
完成之后,回到gitee的仓库页面刷新,我们会发现里面有我们刚刚创建的test.txt这样,HTTPS的远程仓库的推送就完成了
-
-
SSH公钥:这里又分两种,一种是仓库公钥,另一种是账户公钥,两个的作用域不同,区别下面会另讲
-
账户SSH公钥
-
首先,在Bash窗口通过命令 "ssh-keygen"生成 SSH Key:
ssh-keygen -t ed25519 -C "Gitee SSH Key"
其中,"-t" 代表公钥的类型,"-C"为注释
-
输入上述指令后,连续按3次回车键即可
-
之后,通过 "ls ~/.ssh/" 指令来查看SSH公钥和私钥,会输出
id_ed25519 id_ed25519.pub
其中,前者是私钥,后者是公钥,我们读取公钥文件
cat ~/.ssh/id_ed25519.pub
输出如下所示,
ssh-ed25519 AAAA***5B Gitee SSH Key
将公钥复制,后面会用
-
现在我们进去gitee,「个人设置」->「安全设置」->「SSH 公钥」->「添加公钥」将刚刚复制的公钥粘贴到公钥文本框,并为该公钥添加一个标题
-
完成上述之后回到Bash,输入 "ssh -T git@gitee.com"测试绑定是否成功,如下
-
-
仓库SSH公钥(注意:仓库与账号的SSH是不相通但互斥的!)
-
在获取公钥的部分(即Bash窗口的操作)跟账户的是相同的,我们直接看在gitee的操作
-
复制生成的ssh key,通过仓库主页 「管理」->「部署公钥管理」->「添加部署公钥」 ,将生成的公钥添加到仓库中(大致跟账户相同)
-
配置完之后,同样也是通过 "ssh -T"指令来测试,指令如下
$ ssh -T git@gitee.com //下面是输出结果 Hi Anonymous! You've successfully authenticated, but GITEE.COM does not provide shell access.
-
-
区别:
-
账户的 SSH Key 和账户绑定,当账户具有 推送/拉取 权限时可通过 SSH 方式 推送/拉取 的仓库。
-
仓库的 SSH key 只针对仓库,且我们仅对仓库提供了部署公钥,即仓库下的公钥仅能拉取仓库,这通常用于生产服务器拉取仓库的代码。
-
-
- HTTPS的方式
-
GitHub
-
HTTPS的方式
-
跟gitee相同,我们现在github中创建一个仓库用于演示(进入github可能要翻墙,也可以是用加速器,比如watt),然后获取仓库的url
-
然后,在一个空文件夹下打开Bash窗口,完成init以及用户级别的设置
-
完成之后,我们连接github的远程仓库,如下
-
紧接着,我们拉去远程仓库的文件,如下(注意,这里有的人可能不是main,主要看的是你在github中仓库的分支名,有的人master也可以)然后,就会弹出窗口,如下所示,这里我们输入账号密码
-
此时,Bash窗口可能会输出如下结果这里输入还是我们的账号但密码不是我们账号的密码,我们需要进入GitHub,点击右上角头像–> setting --> Developer settings --> Personal access tokens页面点击进入后,在Note中填写备注,然后分别勾选workflow、gist、user,如下勾选完成后,点击最下面的Generate token,就会获得一个新的token,这里一定要把生成的token复制下来,因为一刷新就看不到了
-
现在带着刚刚复制的token回到Bash,在输入完我们的账号后,会弹出一个窗口这里就是输入我们刚刚复制的token了,点击ok之后即可以成功拉取了,然后剩下的跟gitee都大差不差了,但是在推送时,如果你github仓库的分支是main时,推送的指令如下
git push origin master:main //git push <远程主机名> <本地分支名>:<远程分支名> //而当我们的本地分支与远端分支一致时,则可以将命令简化为: //git push <远程主机名> <分支名>
-
-
关于github的SSH跟gitee的就一模一样了,这里就不再多说了
---------------------------------------------------------------------------------------------------------------------------------