GitHub初识
什么是GitHub?
它为开发者提供Git仓库的托管服务,为开发者或团队提供了一系列功能帮助代码编写。
GitHub与Git的差别:
在Git中,开发者将源代码存入叫“Git仓库”的资料库中并加以使用。
而GitHub则是在网络上提供Git仓库的一项服务。GitHub上公开的软件源代码全部由Git进行管理。
GitHub提供的主要功能
-
Git仓库
-
Organization:公开仓库可免费创建organization账户。
-
Issue:将一个任务或问题分配给一个Issue进行追踪和管理。
每一个功能更改或修正都对应者一个Issue,讨论或修正都以这个Issue为中心进行。只要查看Issue,就能知道和这个更改相关的一切信息,并以此进行管理。
-
Wiki:以GFM语法进行书写。
Wiki页也是作为Git仓库进行管理的,改版的历史记录被切实记录下来。
-
Pull Request:可以想别人的仓库提出申请,请求对方合并。
Git的基本知识
Git属于分散型版本管理系统,为版本管理而生。
什么是版本管理?
版本管理就是管理更新的历史记录。例如记录一款软件添加或更改源代码的过程,回滚到特定阶段,恢复误删除的文件等。
版本管理的集中型和分散型的不同点?
集中型:以Subversion为代表的集中型,将仓库集中存放在服务器中,所以只存在一个仓库。集中型将所有数据集中存放在服务器中,有便于管理的优点。但是一旦开发者所处的环境不能连接服务器,就无法获取最新的源代码,开发页几乎无法进行。
分散型:以Git为代表的分散型。GitHub将仓库Fork给了每一个用户。Fork就是将GitHub的某个特定仓库复制到自己的账户下。Fork出的仓库与原仓库是两个不同的仓库,开发者可以任意编辑。
GitHub中Fork 是 服务端的代码仓库克隆(即 新克隆出来的代码仓库在远程服务端),包含了原来的仓库(即upstream repository,上游仓库)所有内容,如分支、Tag、提交。代码托管服务(如Github、BitBucket)提供了方便的完成Fork操作的功能(在仓库页面点一下Fork按钮)。
这样有了一个你自己的可以自由提交的远程仓库,然后可以通过的 Pull Request 把你的提交贡献回原仓库。而对于原仓库Owner来说,鼓励别人Fork他的仓库,通过Pull Request 能给他的仓库做贡献,也是提升了原仓库的知名度。
SSH密钥
应该不止我一个人在此之前根本不知道这是什么吧
SSH是一种加密的网络传输协议。可在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令。使用频率最高的场合类Unix系统,但是Windows操作系统也能有限度地使用SSH。2015年,微软宣布将在未来的操作系统中提供原生SSH协议支持,Windows 10 1809 版本已提供可手动安装的 OpenSSH工具。
使用ssh远程连接服务器,有两种身份校验方式:账号密码和秘钥。使用秘钥的方式理论上更加安全,而且免去了输入密码的步骤,使用起来更方便。
SSH秘钥的生成和使用:
秘钥由谁生成?
这是比较容易搞乱的一点。这里以A、B两台服务器为例,假设A需要SSH登录B,那么应该由A服务器生成秘钥。并把生成的公钥交给B导入;公钥可以在多台服务器导入,一台服务器导入了A的公钥,即意味着承认A的有访问自己权限,所以A可以用一套密钥登录多台服务器。