前言:无聊了快一个月了,不晓得怎么搞的代码也写不进去,就随便写点什么吧,昨晚看到群里在谈Github,所以我也起兴谈点GitHub。
一、Git与GitHub简介
1. Git
Git(global information tracker,全局信息跟踪器)是分布式版本控制系统,用来进行版本控制的。
2. 浅谈集中式与分布式
因为在下对集中式与分布式涉足的并不多,也可以说更多的是了解在理论方面,因此这里只是作为一个补充。
(1) 集中式版本控制系统:其版本库是集中存放在中央服务器的,而各自工作的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始做各自的工作,各自完成各自的工作任务后,再把自己的任务推送给中央服务器。典型的代表是SVN和CVS。CVS作为最早的开源而且免费的集中式版本控制系统,直到现在还有不少人在用。由于CVS自身设计的问题,会造成提交文件不完整,版本库莫名其妙损坏的情况。同样是开源而且免费的SVN修正了CVS的一些稳定性问题,是目前用得最多的集中式版本库控制系统。集中式版本控制系统的拓扑结构如下。
集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟。
(2) 分布式版本控制系统:分布式版本控制系统没有”中央服务器”,每个人的电脑上都是一个完整的版本库,这样,工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。当需要多个人协作的时候,比如说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。分布式版本控制系统的安全性较高,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法工作了。而且在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能你要推送版本库的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样工作,只是交换修改不方便而已。典型代表:git。其拓扑结构如下:
3. Git与GitHub的关系
GitHub开源项目的托管平台,而Git是一种使用命令行的工具,GitHub使Git使用更方便。
(1) GitHub DeskTop/Git客户端:https://desktop.github.com/
(2) GitHub: https://github.com/
二、GitHub的使用入门
1. 注册/登录
略。
2. 创建仓库(create Repository)
一个项目如果被git控制了版本历史,在Github平台上就称为”仓库”(Repository)。
(1) 通过如下两种方式进入到Repository首页
或者
(2) 创建仓库
private一般指绑定了信用卡之类的。
(3) 在Repository下创建新的文件
下面对几个条目作简要说明
- commit:用来进行版本控制的。这里的“1 commit”指的是目前只有一个版本;
- branch:分支在后面会详细说明;
- releases:帮助开发者分发其软件给最终用户的功能。当然用户也可以自行选择下载指定的分支,但 Github 的作者可以明确定义发行分支。这意味着你可以快速下载最新的软件发行版本,之前发布的版本也更加容易访问到;
- contributor:项目的共享者,即协同开发的参与者。
-New pull request:在后面会较为详细的说明,这里主要介绍Create New File。当点击Create New File后(如果该按钮出现灰色不能点击则点击一下Repository名即可再点击)会出现编辑File的界面,然后往下拉,可以看到如下界面:
-1处:做版本留言,说明为什么要做这个版本;
-2处:留言的详细说明;
-3处:提交到哪个分支上,默认将版本做到master分支上。
当点击Commit new file之后再回到创建的Repository可以查看到变为”2 commit”了。
(4) 版本说明
以最新提交的File1为例作说明
然后看到如下的界面:
- 1处:说明了提交的时间和提交人
- 2处:parent 7b54ad5是43d38…..ce91版本的上一个版本。这个Parent就可以在多个版本中理清层次关系了。
- 3处:表示的意思是显示了1个文件被修改,比较原文件有1处增加,0处删除。
- 关于版本号:这里即为7b54ad5和43d38…..ce91,均为为40位的16进制数。前面那个可以展开,也是40位。在Git中的版本是一串数而不是1,2,3等。可以通过版本号来访问的相应的项目,当然这里的版本号也不一定需要全称,也可以取前几位来简称,只要能区别。结构如下:
https://github.com/用户名/仓库名/commit/版本号
比如说这里即为https://github.com/herdyouth/MyFirstRepository/commit/43d38
3. 删除Repository
进入到需要删除的Repository
然后点击Settings进入到如下界面,可以进行Rename,然后拉到最低边,就可以进行Delete操作了