当前位置: 首页 > article >正文

Git简介和特点

目录

一、Git简介

二、Git特点

1.集中式和分布式

(1)集中式版本控制系统

(2)分布式版本控制系统

2.版本存储方式的差异

(1)直接记录快照,而非差异比较

3.近乎所有操作都是本地执行


一、Git简介

Git是目前世界上最先进的的分布式控制系统(没有之一)。

也有两款版本控制系统:CVS和SVN,但是他们必须要联网才能使用,还是集中式的,还有一些其他的,但是需要付费,违背了Linux的开源精神,再加上种种原因,Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了,之后Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。

国内三大代码托管平台:
GitLab、Gitee、GitHub

二、Git特点

1.集中式和分布式

在git之前也有版本控制系统,他们分为集中式和分布式

(1)集中式版本控制系统

集中式版本控制系统简称CVCS,这类系统有CVS、Subversion、Perforce等,他们都有一个单一的集中管理的服务器,保存所有文件的修订版本,协同工作的人员都通过客户端连到这台服务器,取出最新的文件或者提交更新

 

这种系统最大的缺点是中央服务器(即总服务器)的单点故障,如果宕机一小时,那在这一小时之内,谁都无法提交更新,也无法协同工作,而且要是中央服务器的磁盘发生故障,又碰巧没备份,或者备份不及时,就可能会丢失数据,因为张三李四的电脑上只有自己那一块的内容,而不是完整的内容,最坏的情况是彻底丢失整个项目的所有历史更改记录,所以只要整个项目的历史记录被保存在一个单一位置(也就是说保存在一个电脑上),就会有丢失所有历史更新记录的风险

(2)分布式版本控制系统

分布式版本控制系统(简称DVCS)会把服务器上的代码仓库完整的镜像下来,这样每个人的电脑上就都会有一份完成的服务器代码仓库的镜像,任何一处协同工作用的服务器发生故障,事后都可以用个人的电脑上的镜像出来的本地仓库进行恢复。

 

2.版本存储方式的差异

(1)直接记录快照,而非差异比较

Git 和其他版本控制系统的主要差别在于,Git 只关心文件数据的整体是否发生变化,而大多数其他系统则只关心文件内容的具体差异。

其他系统在每个版本中记录着各个文件的具体差异

 Git 并不保存这些前后变化的差异数据,每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。为提高性能,若文件没有变化,Git 不会再次保存,而只对上次保存的快照作一链接。Git 保存每次更新时的文件快照。

 

3.近乎所有操作都是本地执行

在 Git 中的绝大多数操作都只需要访问本地文件和资源,不用连网,不管在哪都可以频繁的提交更新只需要等有网的时候再上传到本地仓库就行;但如果用 CVCS 的话,差不多所有操作都需要连接网络,没有网络或VPN就无法做任何事情。因为 Git 在本地磁盘上就保存着所有当前项目的历史更新,所以处理起来速度飞快。

如果想要看当前版本的文件和一个月前的版本之间有何差异,Git 会取出一个月前的快照和当前文件作一次差异运算,而不用请求远程服务器来做这件事,或是把老版本的文件拉到本地来作比较。


http://www.kler.cn/a/441632.html

相关文章:

  • 202009 青少年软件编程等级考试C/C++ 二级真题答案及解析(电子学会)
  • 什么是HTTP3?
  • pytorch 多机多卡训练方法
  • 用JAVA写算法之输入输出篇
  • 【深度学习】利用Java DL4J 训练金融投资组合模型
  • 2024年第十五届蓝桥杯青少组国赛(c++)真题—快速分解质因数
  • Web 毕设篇-适合小白、初级入门练手的 Spring Boot Web 毕业设计项目:教室信息管理系统(前后端源码 + 数据库 sql 脚本)
  • Unity全局光照详解
  • 基于Spring Boot的摄影师分享交流社区
  • 了解ARM的千兆以太网——RK3588
  • AI技术赋能电商行业:创新应用与未来展望
  • linux 添加默认网关
  • 25上半年软考《系统架构设计师》,备考大纲已出!
  • Qt Q_ENUM enum 转 QString 枚举字符串互转; C++模板应用
  • Rust关键字实例解析
  • 虚拟机安装+XS hell+Xfit(安装方法大致都相同,若不一样,可看其他的)
  • PVE——OpenWRT 硬盘 size单位的调整
  • 【计算机网络】期末考试预习复习|上
  • Java全体系精华(上):从基础到框架,构建坚实开发技能
  • MySQL(七)---C/C++连接MySQL
  • Roslyn 是什么?
  • 从 CephFS 到 JuiceFS:同程旅行亿级文件存储平台构建之路
  • STM32F407ZGT6-UCOSIII笔记6:UCOS-III软件定时器
  • py脚本部署到服务器定时启动
  • 大语言模型与水文水资源领域的深度融合:如何高效完成时间序列分析、空间数据处理、水文模型优化以及智能科学写作等
  • UNIAPP-微信小程序实现文本纠错功能