向阳花开 第1周作业(20160601)
小组成员:荃荃de草叶、囡囡、流光、冬冬(暂时退出)
我们组选择搞定的题目为:
问题1、用500字说说Git的前世今生
问题2、举例说明集中式与分布式版本控制的区别是什么?
问题3、举例演示如何让远程库与本地版本同步?
问题一:用500字说说Git的前世今生@囡囡
git是用于Linux内核开发的版本控制工具,最初由林纳斯·托瓦兹创作,于2005年以GPL发布。最初目的是为更好地管理Linux内核开发而设计,作为一个可以被其他前端包装的后端,但后来git内核已经成熟到可以独立地用作版本控制。与CVS、Subversion一类的集中式版本控制工具不同,git采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。
自2002年开始,林纳斯·托瓦兹决定使用BitKeeper作为Linux内核主要的版本控制系统用以维护代码。因为BitKeeper为专有软件,这个决定在社区中长期遭受质疑。Linux社区中,主张使用开放源代码的软件来作为Linux核心的版本控制系统。2005年,安德鲁·垂鸠写了一个简单程序,可以连接BitKeeper的存储库,BitKeeper著作权拥有者拉里·麦沃伊认为安德鲁·垂鸠对BitKeeper内部使用的协议进行逆向工程,决定收回无偿使用BitKeeper的授权。Linux内核开发团队与BitMover公司进行蹉商,但无法解决他们之间的歧见。林纳斯·托瓦兹决定自行开发版本控制系统替代BitKeeper,以十天的时间,编写出第一个git版本。随着开发的深入,git的正常使用都由一些友善的命令稿来执行,使git变得非常好用。现在,越来越多的著名项目采用git来管理项目开发,例如:wine、U-boot等。
问题二:举例说明集中式与分布式版本控制的区别是什么?@荃荃de草叶
·什么是集中式版本控制
集中式是由一个中央服务器管理控制,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。
简单来说集中式如同一个图书馆,要使用其中的资料就得到图书馆借书,必须通过图书馆才能找到自己想要的资料。可以局域网内共享,只是要完成上传,才能修改,再次上传完成共享。。。比较慢,受人员操作、网络等限制较多。
·什么是分布式版本控制
分布式版本控制 (DVCS) 是一种不需要中心服务器的管理文件版本的方法,但是它也可以使用中心服务器。更改可以被合并到 DVCS 的任何其他用户的系统中,因此可以实现非常灵活的工作流。克隆中心服务器的一套完整的版本库
DVCS 的主要优点是:它比集中的版本控制更灵活,因为它除了支持传统的(集中式)工作流,还支持其他各种工作流;它比集中式服务器快得多,因为大多数操作在客户机本地进行,而不需要网络操作。同时分布式还有一个优势就是可靠性,一个服务器发生故障,对其他的没有影响。
分布式的版本控制摆脱中心的限制,要灵活的多,如同自己随身携带图书馆,不仅仅是借书这么简单,也可以随时随地查阅和更新,同时也能看到别人的更新和修改。甚至可以跳过图书馆的统一配置,自己协调和配置。安全性能更高,即使自己的电脑有限故障,也能在其他的电脑上使用和查找。
问题三:举例演示如何让远程库与本地版本同步?@流光
1.登陆GitHub,创建一个新的仓库:
2.现在,远程库已经准备好了:
3.克隆一个本地库:
输入的命令是上图标记的两个:每输入一个,按一下回车键。
注意要把git库的地址换成你自己的:
4.然后,进入XYhuakaiTask目录:(我是在桌面克隆的本地仓库,方式是右键,点Git Bash Here图标)
5.现在进行远程库与本地版本的同步:回到github,操作截图如下
提交更新的内容:
完成后是这样的:
6.回到XYhuakaiTask目录,右键打开GitBash Here图标,输入:git pull
打开README.md目录(用的是另外下载的Notepad++),就可以看到更新的内容了: