Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。特点:项目越大越复杂,协同开发者越多,越能体现出 Git 的高性能和高可用性。
1.Git 与 SVN 区别
Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。
如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 Git 提供的一些概念和特征。
Git 与 SVN 区别点:
1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。
2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。
3、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。
4、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。
5、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
![](https://img-blog.csdnimg.cn/img_convert/836acf9ab577b3b921bd1015740aa786.jpeg)
2.Git 的记录快照
Git 快照是在原有文件版本的基础上重新生成一份新的文件,类似于备份。为了效率,如果文件没有修改,Git不再重新存储该文件,而是只保留一个链接指向之前存储的文件。
缺点:占用磁盘空间较大
优点:版本切换时非常快,因为每个版本都是完整的文件快照,切换版本时直接恢复目标版本的快照即可。
特点:空间换时间
3.近乎所有操作都是本地执行
在Git 中的绝大多数操作都只需要访问本地文件和资源,一般不需要来自网络上其它计算机的信息。基于这一特点,Git在断网后依旧可以在本地对项目进行版本管理,只需联网后,把本地修改的记录同步到云端服务器即可。
4.Git 中的三个区域
使用Git 管理的项目,拥有三个区域,分别是工作区、暂存区、Git 仓库。如果把这些区域比作现实中纸质文件的人工处理和收纳管理,三个区域分别负责的任务是:
工作区:负责处理工作的区域。
暂存区:已完成的工作的临时存放区域,等待被提交。
Git 仓库:最终的存放区域。
5.Git 中的三种状态
已修改:表示修改了文件,但还没将修改的结果放到暂存区
已暂存:表示对已修改文件的当前版本做了标记,使之包含 在下次提交的列表中;
已提交:表示文件已经安全地保存 在本地的Git 仓库中。
注意:工作区的文件被修改了,但还没有放到暂存区,就是已修改状态。 如果文件已修改并放入暂存区,就属于已暂存状态。 如果Git 仓库中保存着特定版本的文件,就属于已提交状态。
6.基本的Git 工作流程
基本的Git 工作流程如下:
①在工作区中修改文件
②将你想要下次提交的更改进行暂存
③提交更新,找到暂存区的文件,将快照永久性存储到Git 仓库.
教程推荐
书籍推荐
![](https://img-blog.csdnimg.cn/img_convert/713b1a40a7c18ad35d7cbd4a45c0c90e.png)
Git 仅用了几年时间就一跃成为了几乎一统商业及开源领域的版本控制系统。本书全面介绍Git 进行版本管理的基础和进阶知识。全书共10 章,内容由浅入深,展现了普通程序员和项目经理如何有效利用Git提高工作效率,掌握分支概念,灵活地将Git 用于服务器和分布式工作流,如何将开发项目迁移到Git,以及如何高效利用GitHub。
作者简介 · · · · · ·
作者简介:
Scott Chacon
GitHub联合创始人,曾任GitHub首席信息官,现任在线教育创业公司Chatterbug的首席执行官。在GitHub工作的7年里,他负责维护Git主页git-scm.com,并在许多技术大会上发表过演讲,以此传播Git文化和开源精神。GitHub ID:schacon。
Ben Straub
软件开发者,曾就职于GitHub,参与开发了Libgit2开发包以及GitHub for Windows客户端,另著有《GitHub实践》。GitHub ID:ben。