@
一、开源
1. 什么是开源
2. 开源许可协议
开源并不意味着完全没有限制,为了 限制使用者的使用范围 和 保护作者的权利 ,每个开源项目都应该遵守 开源许可协议( Open Source License )。
常见的 5 种开源许可协议
各种开源协议介绍 | 菜鸟教程 (runoob.com)
-
BSD(Berkeley Software Distribution)
-
Apache Licence 2.0
-
GPL(GNU General Public License)
具有传染性的一种开源协议,不允许修改后和衍生的代码做为闭源的商业软件发布和销售
使用 GPL 的最著名的软件项目是:Linux -
LGPL(GNU Lesser General Public License)
-
MIT(Massachusetts Institute of Technology, MIT)
是目前限制最少的协议,唯一的条件:在修改后的代码或者发行包中,必须包含原作者的许可信息
使用 MIT 的软件项目有:jquery、Node.js
二、 开源项目托管平台
专门用于 免费存放开源项目源代码的网站,叫做 开源项目托管平台。
目前世界上比较出名的开源项目托管平台主要有以下 3 个:
- Github(全球最牛的开源项目托管平台,没有之一)
- Gitlab(对代码私有性支持较好,因此企业用户较多)
- Gitee(又叫做码云,是国产的开源项目托管平台。访问速度快、纯中文界面、使用友好)
注意:以上 3 个开源项目托管平台,只能托管以 Git 管理的项目源代码
三、 Github
1. 新建空白远程仓库
创建成功后,跳转界面:
2. 远程仓库的两种访问方式
Github 上的远程仓库,有两种访问方式,分别是 HTTPS
和 SSH
。它们的区别是:
- HTTPS:零配置;但是每次访问仓库时,需要重复输入 Github 的账号和密码才能访问成功
- SSH:需要进行额外的配置;但是配置成功后,每次访问仓库时,不需重复输入 Github 的账号和密码, 推荐使用 SSH 的方式访问远程仓库。
3. 基于 HTTPS 将本地仓库上传到 Github
git push
当本地git仓库第一次推送到github上时需要使用命令 git push -u<远程仓库名称> master
之后本地git仓库文件若有修改,先提交更新本地仓库,在通过命令 git push
可直接推送更新远程仓库
4. 基于 SSH将本地仓库上传到 Github
① SSH key
SSH key 的作用
实现本地仓库和 Github 之间 免登录 的 加密数据传输。
SSH key 的组成
由两部分组成,分别是:
id_rsa
(私钥文件,存放于客户端的电脑中即可)id_rsa.pub
(公钥文件,需要配置到 Github 中)
生成 SSH key
-
打开 Git Bash
-
粘贴如下的命令,并将其中的
your_email@example.com
替换为注册 Github 账号时填写的邮箱:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-
连续敲击 3 次回车,即可在 C:\Users\用户名文件夹.ssh 目录中生成 id_rsa 和 id_rsa.pub 两个文件
配置 SSH key
-
使用记事本打开
id_rsa.pub
文件,复制里面的文本内容 -
在浏览器中登录 Github,点击头像 -> Settings -> SSH and GPG Keys -> New SSH key
-
将 id_rsa.pub 文件中的内容,粘贴到 Key 对应的文本框中
-
在 Title 文本框中任意填写一个名称,来标识这个 Key 从何而来
检测 Github 的 SSH key 是否配置成功
- 打开打开 Git Bash,输入命令
ssh -T git@github.com
并回车执行 - 上述的命令执行成功后,可能会看到如下的提示消息:
The authenticity of host 'github.com (IP ADDRESS)' can't be established. RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8. Are you sure you want to continue connecting (yes/no/[fingerprint])?
- 输入
yes
之后,如果能看到类似于下面的提示消息,证明 SSH key 已经配置成功了:Warning: Permanently added 'github.com,IP ADDRESS' (RSA) to the list of known hosts. Hi username! You've successfully authenticated, but GitHub does not provide shell access.
② 基于 SHH 上传
有关本地仓库上传的 " personal access token " 认证问题
5. 将远程仓库克隆到本地
打开 Git Bash,输入命令 git clone 远程仓库地址
并回车执行,比如: