软件开发中常用的版本控制工具详解

版本控制工具是一种记录一个或多个文件(任何类型的文件)内容变化,以便将来查阅特定版本修订情况以及回溯的系统。

jesen
1
2022-07-30 11:18:09
文档目录
我的书签
 

常用的版本控制工具 之 Git

一、Git 简介

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,项目越大越复杂,协同开发者越多,越能体现出 Git 的高性能和高可用性。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。

二、Git优点

  • 适合分布式开发,每一个个体都可以作为服务器(可以git clone克隆一个本地版本,然后在本地进行操作提交,本地可以完成一个完整的版本控制)。每一次Clone就是从服务器上pull到了所有的内容,包括版本信息;在发布的时候,使用git push来推送到远程即可
  • 公共服务器压力和数据量都不会太大
  • 速度快、灵活,分支之间可以任意切换:git分支的本质是一个指向提交快照的指针
  • 冲突解决:多人开发很容易就会出现冲突,任意两个开发者之间可以很容易的解决冲突,并且单机上就可以进行分支合并(可以先pull远程到本地,然后在本地合并一下分支,解决好冲突,在push到远程即可)
  • 离线工作,不影响本地代码编写,等有网络连接以后可以再push代码、合并分支等,并且在本地可以根据不同的需要,本地新建自己的分支

三、Git缺点

  • git没有严格的权限控制,一般是通过系统设置文件的读写权限来做权限控制
  • 工作目录只能是整个目录,而svn可以单独checkout某个有权限的目录
  • 不符合常规思维,学习周期相对而言比较长,git学习周期可能没有svn顺利
  • 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息

四、Git 与 SVN的区别

  • GIT 是分布式的,SVN 不是(这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别)
  • GIT 把内容按元数据方式存储,而 SVN 是按文件(所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里)
  • GIT 分支和 SVN 的分支不同(分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录)
  • GIT 没有一个全局的版本号,而 SVN 有(目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征)
  • GIT 的内容完整性要优于 SVN(Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏)
友情提示