Git简介

Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。
Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源代码的版本控制软件。
Git与常用的版本控制工具CVS、Subversion等不同,它采用了分布式版本库的方式,不用服务器端软件支持。

Git是目前世界上最先进的分布式版本控制系统,在处理各种项目时,都十分高效,而且非常的高大上。

集中式与分布式的区别:

  • 最常见的集中式版本控制系统是SVN,版本库是集中放在中央处理器中的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器那里获取最新的版本,然后开始干活,干完活后需要把自己做的东西推送到中央服务器。而且集中式版本控制系统是必须联网才能工作的,一旦断网,所有人都将无法开展工作,可见集中式版本控制系统的局限性是比较大的。

  • Git是目前世界上最流行的分布式版本控制系统,它没有中央处理器,每个人的电脑就是一个完整的版本库,同时在工作的时候也不需要联网,因为版本都存储在自己的电脑上。我们随时都可以将自己在工作区间做的修改提交到本地仓库,最后将自己的本地版本仓库推送到远程版本仓库进行合并,效率非常高。

Git与SVN的区别:

Git SVN
核心区别 分布式 集中式
存储方式 Git按元数据方式存储 SVN按文件方式存储
分支 分支是Git的必杀技能,将Git从版本控制系统的家族中突显出来 分支在SVN中一点也不特别,其实它就是版本控制系统中的另外一个目录
全局版本号 Git没有,是目前Git相较SVN缺少的最大特征 SVN有全局版本号
内容完整性 Git的内容存储使用的是SHA-1哈希算法,确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏 在这方面SVN的性能是低于Git的
安全性 和SVN相比,Git的每个分支都有一个完整的版本库,即使某个分支的电脑崩掉了也不要紧,可以随时从其他电脑拷贝过来 而SVN版本控制系统的中央服务器一旦挂掉,所有人的工作都将无法开展

Git的工作流程:

  • 克隆Git资源作为工作目录;
  • 在克隆的资源上添加或修改文件;
  • 如果其他人更改,你可以更新资源;
  • 在提交前查看修改状态;
  • 提交修改;
  • 在修改完成后,如果发现错误,可以撤回提交,并进行再次修改和提交。

Git简介_第1张图片

Git工作区、暂存区及版本库概念:

  • 工作区:自己电脑中能看到的工作目录
  • 暂存区:stage或index,一般放在.git(可隐藏文件)目录下的index文件(.git/index)中,所以我们有时候也把暂存区叫做索引
  • 版本库:工作区中有一个可隐藏目录.git,这个实际上就是Git的本地版本仓库

Git简介_第2张图片

上图中,左侧为工作区,右侧为版本库。在版本库中被标记为“index”的区域为暂存区,被标记为“master”的是master主分支,“HEAD”实际上是指向master主分支的一个游标,“objects”标识的区域为Git的对象库,实际位于.git/objects目录下,里面包含了创建的各种对象及内容。

当工作区进行修改(或新增)的文件执行git add命令时,暂存区的目录树将被更新,同时工作区修改(或新增)的文件内容被写入到对象库(此时的对象库可以认为是暂存区中的对象库)中的一个新的对象中,而该对象的ID被记录在暂存区中的文件索引中。

当执行git commit提交命令时,暂存区的目录树就被提交到版本库中的对象库(objects)中,master主分支会做出相应的更新,即master指向从暂存区提交过来的目录树。

因为我们在创建Git版本库时,Git自动为我们创建了唯一的一个master分支,所以此刻执行git commit命令就是往master分支上提交更改。

整个过程可以简单理解为,需要提交的文件修改通通先放到暂存区,然后一次性提交暂存区的所有修改。

你可能感兴趣的:(Git,服务器,linux,命令行,Git)