admin管理员组

文章数量:1540632

2024年4月6日发(作者:)

GIT使用入门

Part 1

第一章 基本原理

git是一个版本控制系统。官方的解释是:版本控制(Revision control)是一种软

件工程技巧,籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新。

按我的白话文解释就是:一群志同道合的人身处祖国各地,希望来合作开发一个

项目,假设这个项目是使用c语言写的(当然用任何语言都可以的)。那么大家

怎么合作呢?用信件?效率太低。用邮件,不好实现多人沟通。用google

group吧,可开发阶段中的源代码没法科学管理。用自建的网站吧,需要人力物

力财力来支撑阿。

这个时候版本控制系统就派上用场了。它可以让一个团队里的不同的人在不同地

点、不同时间开发和改进同一个项目,并且在大部分的时间里,版本控制系统会

聪明的帮你把不同的人在不同地点不同时间修改的代码融合到项目中去。(当然

在一些特殊的情况,还是需要人去决定到底哪些代码需要加入到项目中,这个在

后面讨论不迟,先让大家对版本控制有一个好印象,呵呵)

知道了版本控制系统的优点之后,下面就要具体实践和体验了。建议你选用的版

本控制系统包括:

rcs,cvs,svn,git,Mercurial,Bazzar等等。

当然git,Mercurial和Bazzar都是属于分布式版本控制系统。

下面是一些网友对于这些版本控制系统评论的只言片语:

1) svk配合svn可以实现分布式的版本控制。

2) 我是从SVN转到Git下的。我想Git的优势是速度飞快,谁用谁知道!

3) git的确是最快的,bzr慢的要死

4) SVN 在 windows 下有 TortoiseSVN

5) git 有 Windows 版本,在 google code 上的项目。

/p/msysgit/

6) 大家可以试试国内提供的git服务。

那么,简单地说,Git 究竟是怎样的一个系统呢?请注意,接下来的内容非常重

要,若是理解了 Git 的思想和基本的工作原理,用起来就会知其所以然,游刃

有余。在开始学习 Git 的时候,请不要尝试把各种概念和其他的版本控制系统

诸如 Subversion 和 Perforce 等相比拟,否则容易混淆每个操作的实际意义。

Git 在保存和处理各种信息的时候,虽然操作起来的命令形式非常相近,但它与

其他版本控制系统的做法颇为不同。理解这些差异将有助于你准确地使用 Git

提供的各种工具。

直接快照,而非比较差异

Git 和其他版本控制系统的主要差别在于,Git 只关心文件数据的整体是否发生

变化,而大多数其他系统则只关心文件内容的具体差异。这类系统(CVS,

Subversion,Perforce,Bazaar 等等)每次记录有哪些文件作了更新,以及都

更新了哪些行的什么内容,请看图 1-4。

图 1-4. 其他系统在每个版本中记录着各个文件的具体差异

Git 并不保存这些前后变化的差异数据。实际上,Git 更像是把变化的文件作快

照后,记录在一个微型的文件系统中。每次提交更新时,它会纵览一遍所有文件

的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。为提高性能,

本文标签: 版本文件项目需要使用