geekest小组作业(1、3、6)
** 1.用 500 字说说 Git 的前生今世。**
Linus 是linux操作系统的创始人,它写linux代码的时候,最开始使用bitkeeper作为linux内核主要的版本控制工具,但是bitkeeper是专有软件,和linux的开放精神相违背,所以一直在linux社区中遭到质疑,社区中主张使用开源软件进行版本管理,然后linus发现开源的大多不好用,因此只能继续使用bitkeeper。
最后linux社区和bitkeeper的人因为一件小事发生了不可调和的分歧,然后linus就决定自己开发版本控制系统替代bitkeeper,用了10天时间,编写出第一个git版本(大神般人物!请接受我的膝盖!)
git是用于Linux内核开发的版本控制工具。与CVS、Subversion一 类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。git的速度很快,这对于诸如Linux内核这样的大项目来说自然很重要。git最为出色的是它的合并追踪(merge tracing)能力。
实际上内核开发团队决定开始开发和使用git来作为内核开发的版本控制系统的时候,世界上开源社区的反对声音不少,最大的理由是git太艰涩难懂, 从git的内部工作机制来说,的确是这样。但是随着开发的深入,git的正常使用都由一些友善的命令稿来执行,使git变得非常好用。现在,越来越多的著 名项目采用git来管理项目开发,例如:wine、U-boot等。
作为开源自由原教旨主义项目,git没有对版本库的浏览和修改做任何的权限限制,通过其他工具也可以达到有限的权限控制,比如:gitosis、 CodeBeamerMR。原本git的使用范围只适用于Linux/Unix平台,但在Windows平台下的使用也日渐成熟。
** 2.举例说明集中式与分布式版本控制的区别是什么?**
集中式就是会有一个中心,所有消息汇总到中心进行处理分发,而分布式就是去中心化,每一个点都是处理者。集中式的优点是管理方便,但是如果遇到中心网络故障则会造成所有从机无法与主机通信,而分布式则不存在这个问题。
** 3.用浅显易懂的语言说明“工作区”、“暂存区”与“版本区”的含义与互相关系是什么?**
工作区是你现在正在操作的 库,你的增生查改操作都是针对的这个库的版本。
暂存区是你提交的本地库,记录你的所有更改,但是并没有分发到网络上,无法被别人获取。
版本区是对外的公开版本,别人可以获取到。
** 4.举例演示如何让远程库与本地版本同步?**
- 命令行为例:
git pull #获取目前最新版本
git commit -a #提交本地工作区到缓存区,之后输入更新信息
git push #提交缓存区版本
5.如何运用分支管理实现多人协作?
** 6.Git和自己的关系可能是什么,至少提出5种?**
- 写书
- 写文章
- 写代码
- 写需求文档
- 团队协作
- 改变固有思维,学会接纳更多
- 使共享工作成果更加便捷!
7.整理一份给小白学习的 Git 教程大纲。
2016年5月31日19:43:30