Git托管

前面的话
本文将主要介绍如何使用Github来托管Git服务
SSH
大多数Git服务器都会选择使用SSH公钥来进行授权。系统中的每个用户都必须提供一个公钥用于授权
首先先确认一下是否已经有一个公钥了。SSH公钥默认储存在账户的主目录下的~/.ssh目录
有.pub后缀的文件就是公钥,另一个文件则是密钥

假如没有这些文件,或者干脆连.ssh目录都没有,可以用ssh-keygen来创建
现在,删除.ssh目录,对SSH重新生成

下面使用ssh-keygen命令来创建SSH,这里需要把邮件地址换成自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码

如果一切顺利的话,可以在用户主目录里找到.ssh
目录,里面有id_rsa
和id_rsa.pub
两个文件,这两个就是SSH Key的秘钥对,id_rsa
是私钥,不能泄露出去,id_rsa.pub
是公钥,可以放心地告诉任何人

SSH的公钥如下所示:

接下来,登陆GitHub,打开“Settings”,“SSH Keys”页面

然后,点“New SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub
文件的内容

点击"Add SSH key"按钮后,结果如下所示:

为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送
当然,GitHub允许你添加多个Key。假定你有若干电脑,一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了
在GitHub上托管的Git仓库,任何人都可以看到,但是只有你自己才能修改。所以,不要把敏感信息放进去
添加本地库
下面添加一个名称为'mygit'的本地库,工作目录下有一个名称为'a.txt'的文件,其内容是'111',并被提交


添加远程库
现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作
下面要建立一个名称为'learngit'的仓库,由于事先已经添加过了。所以,先把其删除
进入'learngit'的仓库界面,找到'Settings'按钮

在页面最下方,找到'Delete this repository'按钮

点击该按钮后,输入要删除的仓库名称,点击'I understand the consequences, delete this reposiytory'按钮即可删除

接下来,重新添加名称为'learngit'的仓库。点击右上角'+'号弹出的'New repository'

输入仓库名称Repository name为'learngit',仓库介绍Description为'learn git',点击'Create repository'按钮,即可添加成功

添加成功后,弹出如下界面。目前,在GitHub上的这个'learngit'仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库

接下来,需要对远程库'learngit'和本地库'mygit'进行关联
$ git remote add origin git@github.com:【GitHub帐号名】/【远程库的名称】.git
添加后,远程库的名字就是origin
,这是Git默认的叫法,也可以改成别的,但是origin
这个名字一看就知道是远程库
如果已经进行了关联,或者关联错了,则需要先删除关联
$ git remote rm origin
删除后,重新添加关联

接下来,把本地库'mygit'里的所有内容推送到远程库'learngit'中
把本地库的内容推送到远程,用git push
命令,实际上是把当前分支master
推送到远程
由于远程库是空的,我们第一次推送master
分支时,加上了-u
参数,Git不但会把本地的master
分支内容推送到远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令

推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样

从现在起,只要本地作了提交,就可以通过以下命令,把本地master
分支的最新修改推送至GitHub
$ git push origin master
克隆远程库
前面我们介绍先有本地库,后有远程库的情况。现在,假设我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆
首先,登陆GitHub,创建一个新的仓库,名字叫gitskills

勾选Initialize this repository with a README
,这样GitHub会自动为我们创建一个README.md
文件。创建完毕后,可以看到README.md
文件

现在,远程库已经准备好了,下一步是用命令git clone
克隆一个本地库
$ git clone git@github.com:【GitHub用户名】/【Github远程库名称】.git
在本地电脑的D盘新建一个名称为'b'的目录,然后将远程库克隆到本地

此时,本地已经有gitskills目录,在该目录下已经有README.md文件了

如果有多个人协作开发,那么每个人各自从远程克隆一份就可以了
好的代码像粥一样,都是用时间熬出来的

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
2016-04-12 深入理解CSS线性渐变linear-gradient