VCS
版本控制系统(Version Control System),是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制。用的比较多的如SVN,Git等。
DVCS
分布式版本控制系统(Distributed Version Control System),软件开发过程中,要解决多人协作的问题,需要有一个版本控制系统,用来合并和管理多人对同一个项目的开发和修改。版本控制有两种方式,一种是集中式版本控制系统,顾名思义,是把代码的管理和同步放在同一个服务器端来进行,如CVS,SVN,由于有完善的权限系统,以及统一的服务端,适合商业软件的开发;而分布式版本控制系统,则相当于把集中式版本控制系统的服务端和客户端都交给参与开发的客户端来保管,只有需要不同开发者合并代码时,才需要一个中转站来完成。
Git
Git是一款免费的、开源的分布式版本控制系统,旨在快速高效地处理无论规模大小的任何软件工程。Git很容易学习,且小步快走,有着闪电般的性能。它超越了SCM工具,比如SVN、CVS、Perforce、ClearCase等,具体体现在方便的本地分支管理、方便的暂存区、并行工作流等。
每一个 Git克隆 都是一个完整的文件库,含有全部历史记录和修订追踪能力,不依赖于网络连接或中心服务器。其最大特色就是“分支”及“合并”操作非常快速、简便。
Git 是由“Linux之父” Linus Torvalds 创建的。因为他发现找不到满意的方案来管理 Linux Kernel 联合开发的版本控制,就自己写了Git。
Git与Svn的区别
Git是分布式SCM,而SVN是基于服务器的,也就是说每个开发者本地都有一套git库,每个人维护自己的版本(或者合并其他人的版本),而SVN是每个人写完代码后都及时的checkin到服务器上,进行合并。
Git的优势
- 快速:无论是pull代码,还是拉分支,都很快
- 离线工作:Git可以让你在本地做所有操作,提交代码,查看历史,合并,创建分支等等
- 回退:你可以用revert、reset来回退代码,甚至可以恢复已经删除的提交
- 保持工作独立:版本库是自己的,回滚历史、反复提交、归并分支并不会影响到其他开发者
- 分布式版本库,无单点故障
- 元数据方式存储内容:所有版本信息:标签、分支、版本记录等位于
.git
目录中
系列内容
本系列内容将用示例图
的方式来讲解git相关命令的执行过程
,并分享一些实战经验
,比如分支策略
,以及日常使用中遇到的问题。