我们知道GitHub是一个最大、最受程序员宠爱的开源项目托管平台,以及版本控制系统,Github拥有超过900万开发者用户。随着越来越多的应用程序转移到了云端,Github已经成为了管理软件开发以及发现已有代码的首选方法,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub,和他一样支持Git作为唯一的版本库格式的代码脱管网站还有GitLab、Gitee等也是非常强大的,Gitee是我们国产的开源平台哦,我们今天重点来学习GitHub
目录
一.什么是开源&开源协议
二.GitHub远程仓库与配置密钥
一句话,开源就是项目源码可以公开访问,因此所有人都可以都可以审查、修改和增强,对开发者和非开发者都是有益的
说到开源,那不得不提到开源协议,开源其实并不意味着完全的没有限制,为了保护作者的权利,限制了使用者的使用者的范围,每一个开源项目都应该遵守开源协议(Open Source License)
开源协议是固定的一个协议吗?不,有很多的开源协议供我们选择使用,总共有上百种,常见的五种为:BSD、Apache License、GPL、LGPL、MIT
其中较为常用的GPL、MIT我们简单介绍一下:
MIT:MIT协议又称X11协议,作者只想保留版权,而无任何其他了限制,是目前限制最少的协议,但是有一个条件——在修改后的代码或者发行包中,必须要有原作者的许可信息,jQuery和Node.js就是使用的MIT协议
GPL:支持代码的免费使用和引用修改衍生代码,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售,也就是说免费用,但是你在使用该开源项目时必须免费,Linux使用的就是GPL协议
其他开源协议可以参考文档了解更多:
各种开源协议介绍 | 菜鸟教程
简单的了解了开源项目托管平台和开源,接下来我们进入GitHub的旅程
首先我们需要注册一个GitHub账号,然后我们可以新建一个库,来作为链接本地的远程仓库
我们可以像这样点击加号新建一个库,或者点击左边的NEW来新建一个库
填写资料完毕我们会看到这样的画面:
上面蓝条中的HTTP与SSH是我们访问远程仓库的俩种方式:
HTTP:无需配置,每次访问库都需要重复输入GitHub的账号和密码
SSH:需要配置,一次配置成功之后,之后每次访问仓库都不需要重复的输入账号和密码
我们先使用HTTP来关联上本地仓库,在前一章我们阐述了怎么样创建本地仓库,并将项目文件提交更新到Git仓库,现在我们将Git仓库与云端的GitHub仓库进行关联:
git push #同步 #如果我们提交到云端之后,在本地又对文件做出了修改,那么可以使用当前这个指令来同步 #第一次同步关联时使用上图中的代码(直接复制就好)
我们这样操作就可以把本地Git仓库中的项目同步关联的云端GitHub仓库了
接下来我们使用SSH来进行访问,我们需要再次创建一个库,这个库用SSH来访问:
配置一个SSH的密钥(SSH KEY)可以让我们实现本地仓库和GitHub之间进行免登录的加密传输
SSH密钥有俩部分组成,我们需要手动去生成(在Git Bash Here中输入终端命令):
ssh-keygen -t rsa -b 4096 -C"你的邮箱地址"
这是固定命令,我们只需要填写自己的邮箱地址就可以了
输入完成之后,点击三次回车,我们就在C盘的用户文件夹下的.ssh文件夹中生成了:
id_rsa: 私钥,存放于客户端电脑中
id_rsa.pub: 公钥,需要配置到GitHub中
所以我们之前所说的配置,就是在GitHub中配置公钥:
1.在C盘中找到我们的公钥文件,打开之后复制其中文本内容
2.我们在云端GitHub中点击我们的头像-->Settings-->SSH and GPG Keys-->Newkey
3.将刚复制好的文本内容粘贴到框内,并在下方title文本框中输入名称,用来表示KEY从何而来
接下来我们检查一下GitHub得SSH公钥是否配置成功
ssh -T git@github.com
此时他会问你是否继续进行关联,我们继续输入
yes
这样就可以完成关联了(响应返回语句中要有自己的用户名,可以以此为依据证明关联完成)
基本操作已经完成了,那么有一个问题,上传上去有什么用呢?
最大的用处我觉得就是数据不会丢失,当我们本地数据丢失之后,我们可以点开Code复制远程仓库地址,在终端输入:
git clone 远程仓库地址
我们就可以把云端项目文件拷贝克隆到本地了
tips:我们可以拥有一个免费的域名,通过免费的域名我们可以在在网络中访问我们的项目