第07节_远程仓库
1.Github
1.1 什么是开源
1.2 开源许可协议
开源并不意味着完全没有限制,为了限制使用者的使用范围和保护作者的权利,每个开源项目都应该遵守开源许可协议( Open Source License )。
常见的 5 种开源许可协议:
① 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
关于更多开源许可协议的介绍,可以参考博客:各种开源协议介绍
1.3 为什么要拥抱开源
开源的核心思想是“我为人人,人人为我”,人们越来越喜欢开源大致是出于以下 3 个原因:
① 开源给使用者更多的控制权
② 开源让学习变得容易
③ 开源才有真正的安全
开源是软件开发领域的大趋势,拥抱开源就像站在了巨人的肩膀上,不用自己重复造轮子,让开发越来越容易。
1.4 开源项目托管平台
专门用于免费存放开源项目源代码的网站,叫做开源项目托管平台。目前世界上比较出名的开源项目托管平台
主要有以下 3 个:
Github(全球最牛的开源项目托管平台,没有之一)
Gitlab(对代码私有性支持较好,因此企业用户较多)
Gitee(又叫做码云,是国产的开源项目托管平台。访问速度快、纯中文界面、使用友好)
注意:以上 3 个开源项目托管平台,只能托管以 Git 管理的项目源代码,因此,它们的名字都以 Git 开头。
2.远程仓库
2.1 新建空白远程仓库
2.2 新建空白远程仓库成功
2.3 远程仓库的两种访问方式
Github 上的远程仓库,有两种访问方式,分别是 HTTPS 和 SSH。它们的区别是:
HTTPS:零配置;但是每次访问仓库时,需要重复输入 Github 的账号和密码才能访问成功
SSH:需要进行额外的配置;但是配置成功后,每次访问仓库时,不需重复输入 Github 的账号和密码
注意:在实际开发中,推荐使用 SSH 的方式访问远程仓库。
2.4 基于 HTTPS 将本地仓库上传到 Github
2.5 SSH key
SSH key 的作用:实现本地仓库和 Github 之间免登录的加密数据传输。
SSH key 的好处:免登录身份认证、数据加密传输。
SSH key 由两部分组成,分别是:
id_rsa(私钥文件,存放于客户端的电脑中即可)
id_rsa.pub(公钥文件,需要配置到 Github 中)
2.6 生成 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 两个文件
2.7 配置 SSH key
① 使用记事本打开 id_rsa.pub 文件,复制里面的文本内容
② 在浏览器中登录 Github,点击头像 -> Settings -> SSH and GPG Keys -> New SSH key
③ 将 id_rsa.pub 文件中的内容,粘贴到 Key 对应的文本框中
④ 在 Title 文本框中任意填写一个名称,来标识这个 Key 从何而来
2.8 检测 Github 的 SSH key 是否配置成功
打开 Git Bash,输入如下的命令并回车执行:
ssh -T git@github.com
上述的命令执行成功后,可能会看到如下的提示消息:
输入 yes 之后,如果能看到类似于下面的提示消息,证明 SSH key 已经配置成功了:
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
2.9 基于 SSH 将本地仓库上传到 Github
3.团队内协作
3.1 在本地创建远程库地址别名
远程库地址太长了,我们需要在本地创建一个简短的别名便于引用
①先复制远程库地址
②在本地创建远程库地址别名
查看当前所有远程地址别名:git remote -v
创建新的远程地址别名:git remote add 别名 远程地址
3.2 推送
git push 别名 分支
推送过程中需要填写账号密码
推送后可以刷新远程库所在页面,查看我们上传的文件
3.3 克隆
团队其他人想拿到整个库就可以使用克隆功能。命令格式是:git clone 远程库地址
克隆命令有三个效果:
- 创建并初始化本地库,相当于执行了git init命令
- 创建远程地址别名,相当于执行了git remote add命令
- 把远程库文件下载到本地
3.4 使用未加入团队的账号执行推送操作
3.5 邀请团队成员加入远程库
①仓库主人发起邀请
②被邀请人接受邀请
被邀请人登录自己的码云账号,查看私信通知
3.6 加入团队后再尝试推送
3.7 通过拉取操作查看别人的修改
4.跨团队协作
4.1 团队外:fork远程库
4.2 团队外:在fork仓库中修改代码
如果要修改的代码很多,可以先clone到本地,修改完成后再push。如果修改不多可以直接在线修改。
4.3 团队外:修改完成后发起pull request
创建后效果如下:
4.4 团队内:审核代码
首先审核者通过站内通知获知pull request请求
4.5 团队内:合并代码
需要团队内确认审核代码没有问题,并且有专人测试通过,然后依次点击审核通过、测试通过按钮。