1、知识点linux
> 版本控制是一种记录一个或若干文件内容变化,以便未来查阅特定版本修订状况的系统git
> 实际上能够对任何类型的文件进行版本控制。数据库
1.1 特色windows
- 每次修改后进行提交,这样就能够在须要的时候将某个文件回溯到以前的状态。
- 能够比较文件的变化细节,查出最后是谁修改了哪些地方,从而找出致使怪异问题的缘由。
- 就算你胡乱地把整个项目的文件改得面目全非,你照样能够轻松恢复到原来的样子。
2、版本控制方案服务器
2.1 本地版本控制分布式
- 大多都是采用某种简单的数据库来记录文件的历次更新差别。
- 其中最流行的一种叫RCS,现今许多计算机系统上都还看获得它的踪迹。 甚至在流行的 Mac OS X 系统上安装了开发者工具包以后,也可使用
rcs
命令。

2.2 集中化的版本控制svn
- 解决不一样系统上的开发者协同工做。
- 管理员能够轻松掌控每一个开发者的权限。
- 表明软件:CVS、Subversion 、Perforce。
- 多年以来,这已成为版本控制系统的标准作法。
事分两面,有好有坏。 这么作最显而易见的缺点是中央服务器的单点故障。若是宕机一小时,那么在这一小时内,谁都没法提交更新,也就没法协同工做。 若是中心数据库所在的磁盘发生损坏,又没有作恰当备份,毫无疑问你将丢失全部数据——包括项目的整个变动历史,只剩下人们在各自机器上保留的单独快照。工具

2.3 分布式版本控制网站
- 客户端并不仅提取最新版本的文件快照,而是把代码仓库完整地镜像下来。
- 每一次的克隆操做,实际上都是一次对代码仓库的完整备份。
- 任何一处协同工做用的服务器发生故障,过后均可以用任何一个镜像出来的本地仓库恢复。
- 表明软件:Git、Mercurial、Bazaar 以及 Darcs 等
许多这类系统均可以指定和若干不一样的远端代码仓库进行交互。籍此,你就能够在同一个项目中,分别和不一样工做小组的人相互协做。 你能够根据须要设定不一样的协做流程,好比层次模型式的工做流。spa

3、流行的版本控制软件
3.1 Git
> Git是开源的分布式版本控制系统。
> Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
> Git是用C语言开发的。
在windows上的安装
> Git for Windows - msysGit
> TortoiseGit - 右键菜单式简易操做
在Linux上的安装
> Git 官方网站上有在各类 Unix 风格的系统上安装步骤,网址为 http://git-scm.com/download/linux
在Mac上的安装
> 最简单的方法是安装 Xcode Command Line Tools。
> Mavericks (10.9) 或更高版本的系统中,在 Terminal 里尝试首次运行 git 命令便可。
> 官方维护的 OSX Git 安装程序
3.2 SVN
> SVN是一个开放源代码的版本控制系统。
> SVN采用了分支管理系统,它的设计目标就是取代CVS。
> SVN能够针对各个目录分别进行权限控制。
在Windows上的安装
> 服务端 - VisualSVN Server
> 客户端 - TortoiseSVN
> VS插件 - VisualSVN for Visual Studio X
4、 参考资料
- Git-Book - The entire Pro Git book, written by Scott Chacon and Ben Straub and published by Apress, is available here.