Git 究竟是怎样的一个系统呢?为什么在 SVN 作为版本控制工具已经非常流行的时候,还有 Git 这样一个版本控制工具呢?Git 和 SVN 的区别在哪儿呢?Git 优势又在哪呢?下面 PHP 程序员雷雪松带你一起详细的聊一下 Git。
Git 是由 Linux 的缔造者 Linus Torvalds 开发出自己的版本系统,Linux 内核开源项目是由 Git 来作为版本管理工具管理的。这样一说是不是觉得 Git 肯定不能小觑。
Git 设计的时候是分布式版本控制系统,而 SVN 是集中化的版本控制系统。如果 SVN 服务器的发生故障,你就不能在使用版本控制,并且可能丢失所有历史更新记录的风险。Git 所有操作都是本地执行,可以离线进行任何操作。而且 Git 可以用任何一个镜像出来的本地仓库恢复。因为每个用户克隆的操作都是对代码仓库的完整备份。
Git 对待数据更像是一个 快照流。而 SVN 则以文件变更列表的方式存储信息,将它们保存的信息看作是一组基本文件和每个文件随时间逐步累积的差异。
Git 有三种状态:已修改(modified)、已暂存(staged)和已提交(committed)。已修改表示修改了文件,但还没保存到数据库中。已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。已提交表示数据已经安全的保存在本地数据库中。
Git 项目的三个工作区域的概念:Git 仓库、工作目录以及暂存区域。Git 仓库目录是 Git 用来保存项目的元数据和对象数据库的地方。克隆仓库时,拷贝的就是这里的数据。工作目录是对项目的某个版本或者分支独立提取出来的内容。暂存区域是一个文件,保存了下次将提交的文件列表信息。
基本的 Git 工作流程如下:
1、在工作目录中修改文件。
2、暂存文件,将文件的快照放入暂存区域。
3、提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。
相信通过上面的讲解,大家对 Git 有个更好的认识,Git 的优势总结一下,分布式设计,数据快照保存数据,很好的保证完整性以及高效分支管理。在 PHP 程序员雷雪松的博客中也有一篇专门介绍《Git 常用命令详解》的文章,欢迎大家点击阅读。
来源:再次学习 Git 版本控制工具