# 6.1 Git
## 6.1 Git
Git一般被用作一种版本控制系统(Version Control System),由Linux的发明人Linus Torvalds发明。作为一种版本控制系统,Git有仓库(Repository)、版本(Revision)和提交(Commit)的概念,以及查看版本历史(history)、版本之间的差异(diff)、以及创建/合并分支(branch)等基本功能。但是它跟CVS和SVN这样的版本控制系统相比有以下几点显著不同:
- 它是一种分布式的管理系统,而非client-server系统。这意味着它不像CVS或者SVN那样把历史纪录放在一个中心的服务器上,而是分布在各处,包括最终用户的本地机器上——每一处都有完整的历史纪录。这使得它不依赖中心服务器就可以工作。
- 它具有轻便的“分支-合并”功能,并且它鼓励积极地使用这一功能来进行开发:每一个新的功能或者BUG修复都可以/应该在一个新的分支上进行,完成之后再merge回主干上。
这些不同之处是由于Git与众不同的设计:实际上Git应该被看做是一种带有版本管理功能的文件系统[1](#fn_1)。只有深入理解了这一点(将在[Git基本原理](internals.html)一节详细介绍),才能真正理解Git。
本章将首先介绍Git作为一种版本控制系统的基本操作,然后介绍Git背后的原理,最后给出进一步学习的指南。
> 1. "In many ways you can just see git as a filesystem – it's content-addressable, and it has a notion of versioning, but I really really designed it coming at the problem from the viewpoint of a filesystem person (hey, kernels is what I do), and I actually have absolutely zero interest in creating a traditional SCM system." - Linus. 参见:[https://en.wikipedia.org/wiki/Git\_%28software%29#Data\_structures](https://en.wikipedia.org/wiki/Git_%28software%29#Data_structures)[↩](#reffn_1 "Jump back to footnote [1] in the text.")
- 前言
- 1 Web概述
- 1.1 什么是Web
- 1.2 超文本和超链接
- 1.3 URL
- 1.4 DNS
- 1.5 HTTP
- 1.5.1 客户端请求
- 1.5.2 服务器应答
- 1.5.3 进一步了解HTTP
- 1.6 HTTPS
- 2 Web浏览器
- 2.1 HTML
- 2.1.1 文档类型声明
- 2.1.2 标签和属性
- 2.1.3 文档结构
- 2.1.4 DOM
- 2.1.5 进一步了解HTML
- 2.2 CSS
- 2.2.1 样式与样式表
- 2.2.2 样式表语法
- 2.2.3 级联样式表
- 2.2.4 进一步了解CSS
- 2.3 JavaScript
- 2.3.1 script标签
- 2.3.2 操纵DOM
- 2.3.3 jQuery
- 2.3.4 进一步了解JavaScript
- 2.4 Ajax
- 2.5 移动设备与响应式Web设计
- 3 Web服务器
- 3.1 方法与资源
- 3.2 状态代码
- 3.3 静态内容与动态内容
- 3.4 编程语言与技术
- 3.4.1 CGI
- 3.4.2 PHP
- 3.4.3 Java
- 3.4.4 Python
- 3.4.5 Ruby
- 3.4.6 Node.js
- 3.5 RESTful Web API
- 3.6 服务器架构
- 3.7 Web缓存
- 3.8 服务器推送
- 4 数据库
- 4.1 关系型数据库
- 4.2 NoSQL数据库
- 5 Web服务器的其他组件
- 5.1 Cron
- 5.2 消息队列
- 5.3 邮件服务器
- 6 开发工具与技术
- 6.1 Git
- 6.1.1 Git基础操作
- 6.1.2 Git基本原理
- 6.1.3 进一步了解Git
- 6.2 敏捷开发