前言
最近瞎搞 github 的一些配置,结果搞得有一段时间克隆不了仓库。不过经历了这次风波后,我对 github 的一些原理有了更清楚的了解。所以想稍微写一小篇文章总结输出一下,也欢迎有疑问的读者与博主进一步交流,我的理解还是有限的哈哈。
主要探讨关于 github 的基础克隆操作的一些配置理解。
克隆
从比较基础的东西讲起吧。克隆仓库是什么?当我们在 github 上看到感兴趣的项目/仓库 repositories 的时候,会想自己把代码扒下来用,或者自己加入这个项目也成为一名开发者(这个操作其实一般需要 fork 自己的一份仓库,涉及一些协作开发的内容吧,这篇文章里不会提到,主要还是讲解对简单的个人项目的一些操作)。这个把项目搞下来的操作就是克隆。
可能有同学会问,我直接点击 Download ZIP 下一个压缩包到本地岂不是最简洁明了方便的方法吗,这样不就行了吗。其实还是有一点区别的,Download ZIP 下载下来的只是其中的代码部分(当然如果只是想把当前的代码扒下来用而不涉及一些自己的修改提交,这样完全可以),而终端 git clone 操作搞下来的不只有 code,还有版本信息(比如我想切换到该仓库的不同分支,不同版本等),是一个“包含仓库配置信息”的代码仓库,使用管理也更为方便。
Github Desktop 是 Github 提供的一个图形化操作管理界面,我个人没太尝试过hh,和终端操作的 https/ssh 应该是一个效果。但是还是建议大家学习尝试一下 cmd 操作,毕竟比如对于一些服务器等场景,gui 页面并不是一定可以用的。
https 方式相当于:我在本地登录我的 github 账号密码,系统校验后判断我是否有这个权限去使用这个仓库,如果有则允许使用。
ssh 方式相当于:针对本主机配置的一种校验方式,使得在当前主机上不用每次都输入账号密码即可校验身份。具体实现方式如下,非对称加密算法 RSA:
#mermaid-svg-OwQodBA0djE8WGVD {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-OwQodBA0djE8WGVD .error-icon{fill:#552222;}#mermaid-svg-OwQodBA0djE8WGVD .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-OwQodBA0djE8WGVD .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-OwQodBA0djE8WGVD .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-OwQodBA0djE8WGVD .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-OwQodBA0djE8WGVD .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-OwQodBA0djE8WGVD .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-OwQodBA0djE8WGVD .marker{fill:#333333;stroke:#333333;}#mermaid-svg-OwQodBA0djE8WGVD .marker.cross{stroke:#333333;}#mermaid-svg-OwQodBA0djE8WGVD svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-OwQodBA0djE8WGVD .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-OwQodBA0djE8WGVD .cluster-label text{fill:#333;}#mermaid-svg-OwQodBA0djE8WGVD .cluster-label span{color:#333;}#mermaid-svg-OwQodBA0djE8WGVD .label text,#mermaid-svg-OwQodBA0djE8WGVD span{fill:#333;color:#333;}#mermaid-svg-OwQodBA0djE8WGVD .node rect,#mermaid-svg-OwQodBA0djE8WGVD .node circle,#mermaid-svg-OwQodBA0djE8WGVD .node ellipse,#mermaid-svg-OwQodBA0djE8WGVD .node polygon,#mermaid-svg-OwQodBA0djE8WGVD .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-OwQodBA0djE8WGVD .node .label{text-align:center;}#mermaid-svg-OwQodBA0djE8WGVD .node.clickable{cursor:pointer;}#mermaid-svg-OwQodBA0djE8WGVD .arrowheadPath{fill:#333333;}#mermaid-svg-OwQodBA0djE8WGVD .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-OwQodBA0djE8WGVD .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-OwQodBA0djE8WGVD .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-OwQodBA0djE8WGVD .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-OwQodBA0djE8WGVD .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-OwQodBA0djE8WGVD .cluster text{fill:#333;}#mermaid-svg-OwQodBA0djE8WGVD .cluster span{color:#333;}#mermaid-svg-OwQodBA0djE8WGVD div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-OwQodBA0djE8WGVD :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}
是
否
本机生成公钥私钥
公钥交给远程主机
本机需要远程访问时给远程主机发送请求
远程主机随机生成一个字符串用公钥加密 发给本机
本机用私钥成功解密 发回给远程主机
远程主机判断字符串是否成功解密
确认本机身份
确认权限 允许后续操作
身份未知
具体操作方法
http 方式:
- 首先需要下载 git,下载后 windows 右键-git bash here 或者 linux cmd 中就可以使用 git 了。
- 复制想克隆仓库的地址:选择 https,点击这个键复制:
- 在终端窗口中输入:
git clone 刚才复制的地址
。然后应该输入你的 github 账号密码信息以此校验身份。身份校验后就会显示一个下载的进度信息。 - 进入文件夹,输入
git status
就可以看到他是一个 Git 仓库的形式,可以进行项目管理,这也是和 Download ZIP 最本质的区别。
ssh 连接方式:
- 首先在本机上生成 ssh 公钥私钥。
ssh-keygen -t rsa -C "[email protected]"
后面的邮箱是 github 克隆要使用的邮箱账号。然后终端提示信息会先让你输入要生成的密钥的文件路径(建议按回车保持默认并记住),还有生成密钥的一些密文(博主也没使用过,直接按回车即可),最后在目标路径中就生成了公钥和私钥。 - 去到生成密钥的路径中,**.pub 文件是公钥,没有 .pub 后缀的文件是私钥。我们要把公钥文件中的内容复制粘贴到 github 中,私钥内容万不可泄露。** 打开 .pub 文件并复制其中内容。
- 在 github-settings-ssh and gpg keys 中添加密钥,密钥名称自取,密钥内容粘贴刚才复制的公钥。
- 然后克隆仓库的时候可以直接输入
git clone ssh 地址
,git 自动校验并完成克隆。
参考文章
Github配置ssh key的步骤(大白话+包含原理解释)
风中一匹狼v
————————————————
版权声明:本文为CSDN博主「风中一匹狼v」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42310154/article/details/118340458
Git公钥id_rsa.pub的配置
木偶☜
————————————————
版权声明:本文为CSDN博主「木偶☜」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_45096273/article/details/112797298
博主是在自己的实验和理解的基础上部分参考了前辈们的文章。还请大家多多支持原作者~
版权归原作者 灰海宽松 所有, 如有侵权,请联系我们删除。