所谓版本控制,就是对发行的版本进行管理,而 Git 就是能够让你可以很方便的对产品的版本(version)进行管理(更新升级,回滚回退等)的优秀工具。Git 主要是程序猿用来对源代码进行托管以方便迭代更新以及误操作的回退,但是事实上,他可以对任何文件进行版本控制,比如图片,文档等等。
Git 的演变
这里简要介绍一下 git 的演变历史。任何一个产品,对他进行改进升级,免不了会产生多个版本,最简单的办法就是用多个目录分别存放,然后用不同的名称加以区分,这就是最简单的本地版本控制系统。
但是如果是多人协作的项目该怎么办呢,这时候就需要对版本进行集中化的控制,团队成员可以从版本中心下载最新的版本,对其进行修改后,再提交到版本控制中心。当然,有专门的的人员对提交的申请进行控制。这就是集中化的版本控制系统。
由于核心版本都集中在版本控制中心,这就会面临单点故障的风险,虽然可能根一些本地电脑的记录进行恢复,但是不能保证本地电脑一定会保存有完整的项目修改记录。于是分布式版本控制系统应运而生。每一次提取,都是对代码仓库的完整备份,所以成为分布式。Git 就是一个分布式版本控制系统。
Git 和其他版本控制系统的一些区别
许多其他的版本控制系统关注文件的具体细节,比如记录哪些文件做了修改,修改了什么地方。
而 Git 关注的是整体是否发生变化,并且是对文件直接进行快照。如果某个版本中的某个文件没有发生变化,为了提高性能,就依然保存上一次的快照。
Git 文件的三种状态
Git 文件主要有三种状态,已修改(modified),已暂存(staged)和已提交(committed)。这三种状态的文件分布在三个区域:工作目录,暂存区域和本地仓库。他们之间的流转流程如下。
一般的工作流程是:
- 对工作目录中的文件进行修改
- 对修改后的文件进行快照,然后保存到暂存区域。
- 提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中。
Git 的获取
windows 的 Git 可以从这里获取:http://msysgit.github.com/
安装以后需要配置用户名和邮箱,这是很重要的,以后对版本作了修改,记录的作者信息就是从这里来的。
$ git config --global user.name "yourname"
$ git config --global user.email youremail@example.com
接下来还有一些其他的配置
$ git config --global core.editor emacs #文本编辑器,支持 vi 和 vim
$ git config --global merge.tool vimdiff #差异分析工具,支持kdiff3,tkdiff,meld,xxdiff,
#emerge,vimdiff,gvimdiff,ecmerge,和 opendiff
查看配置信息
$ git config --list
$ git config user.name #查看某个具体的配置信息
jianqiangli