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

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 会取出一个月前的快照和当前文件作一次差异运算,而不用请求远程服务器来做这件事,或是把老版本的文件拉到本地来作比较。

相关文章:

Git简介和特点

目录 一、Git简介 二、Git特点 1.集中式和分布式 (1)集中式版本控制系统 (2)分布式版本控制系统 2.版本存储方式的差异 (1)直接记录快照,而非差异比较 3.近乎所有操作都是本地执行 一、Git简介 Git是目前世界上最先进的的分布式控制系统(没有之一…...

如何通过docker 部署minio,端口号为9105

通过Docker部署MinIO对象存储服务,并指定API端口为9105,可以按照以下步骤进行。我们将基于已有的资料来详细说明这一过程。 1. 准备工作 首先,确保你的系统上已经安装了Docker。如果没有安装,可以根据官方文档指导完成安装。接下…...

设置Qt程序开机自启动(windows版本)

前言 本文展示在windows环境下,通过代码实现更改系统注册表的方式来实现程序的开机自动启动。 一、注册表 需要更改的系统注册表为: HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run 二、代码演示 1.头文件 头文件autorun.h #ifndef …...

【HarmonyOS】鸿蒙获取appIdentifier,Identifier

【HarmonyOS】鸿蒙获取appIdentifier,Identifier 一、前言 三方后台需要填写的所谓appIdentifier,Identifier信息,其实对应鸿蒙应用的appID。 二、解决方案: 注意,模拟器获取data.signatureInfo.appIndentifer为空…...

【Rust自学】3.5. 控制流:if else

3.5.0. 写在正文之前 欢迎来到Rust自学的第三章,一共有6个小节,分别是: 变量与可变性数据类型:标量类型数据类型:复合类型函数和注释控制流:if else(本文)控制流:循环 通过第二章…...

美国信息学奥林匹克竞赛USACO 2024年12月比赛铜级问题1. 循环舍入-答案代码

题目见&#xff1a; USACO 2024年12月比赛铜级问题1. 循环舍入(USACO 2024 December Contest, Bronze Problem 1. Roundabount Rounding) 最简单的青铜级 亲测所有得分点通过哈&#xff01; 下一篇会给解题分析哦&#xff01; #include <iostream> using namespace std;…...

Llama3模型详解 - Meta最新开源大模型全面解析

&#x1f4da; Meta最新发布的Llama3模型在开源社区引起广泛关注。本文将全面解析Llama3的技术特点、部署要求和应用场景。 一、模型概述 1. 基本信息 发布机构: Meta AI开源协议: Llama 2 Community License Agreement模型规格: 7B/13B/34B/70B训练数据: 2万亿tokens上下文长…...

2021-02-12 c++里面cin.sync()函数的意思

回复急~救救菜鸡吧&#xff0c;C用cin.clear()和cin.sycn()清空缓存区一直清不了!_编程语言-CSDN问答 标识符号为:goodbit 无错误 Eofbit 已到达文件尾 failbit 非致命的输入/输出错误可挽回 badbit 致命的输入/输出错误无法挽回 int a 0;cin >> a;if (cin.rdstate() i…...

下载红米Note 9 Pro5G对应的LineageOS代码下载及编译

构建 LineageOS 进入网站&#xff1a;Info about gauguin | LineageOS Wiki&#xff0c;点击&#xff1a;Build for yourself&#xff0c;里面有详细的教程&#xff0c;我这里就按照Note 9 Pro 5G来。 机器环境 Ubuntu环境为&#xff1a;20.04.6LinagesOS版本&#xff1a;21-…...

《探索 Caffe2 的 C++接口在移动设备上的性能优化之路》

在当今移动应用日益智能化的时代&#xff0c;将深度学习框架如 Caffe2 的 C接口应用于移动设备上已成为众多开发者的目标。然而&#xff0c;移动设备资源相对有限&#xff0c;如何优化其性能成为了关键挑战。 一、移动设备应用深度学习的现状与挑战 随着智能手机等移动设备的…...

1.编写一个程序,给定一个大写字母,要求用小写输出

思路&#xff1a;ascII码值 例如&#xff1a;A的ASCII码值为65&#xff0c;a的ASCII码值为97&#xff0c;不难发现&#xff0c;大小写字母之间的ascii值相差了32 #include <stdio.h> int main() {char c;scanf("%c",&c);printf("%c",c32);retu…...

条件随机场(CRF)详解:原理、算法与实现(深入浅出)

目录 1. 引言2. 什么是条件随机场&#xff1f;2.1 直观理解2.2 形式化定义 3. CRF的核心要素3.1 特征函数3.2 参数学习 4. 实战案例&#xff1a;命名实体识别5. CRF vs HMM6. CRF的优化与改进6.1 特征选择6.2 正则化 7. 总结与展望参考资料 1. 引言 条件随机场(Conditional Ra…...

Android Studio、JDK、AGP、Gradle、kotlin-gradle-plugin 兼容性问题

文章目录 问题&#xff1a;解决办法&#xff1a;gradle与 java的版本兼容AGP与Gradle的版本兼容kotlin 与 jvm 的版本兼容KGP、Gradle、AGP兼容关系kotlin 与 java 的编译版本配置 问题&#xff1a; 你从githb上clone了一个项目&#xff0c;本地跑的时候&#xff0c;各种报错。…...

防抖(Debounce)和节流(Throttle)的区别和应用场景

防抖&#xff08;Debounce&#xff09;和节流&#xff08;Throttle&#xff09;虽然都是用来限制函数的执行频率&#xff0c;但它们的实现方式和应用场景有所不同。以下是两者的主要区别&#xff1a; 1. 执行原理 防抖&#xff08;Debounce&#xff09;&#xff1a; 执行条件&a…...

前端 Code Review 常见问题

在前端开发中&#xff0c;代码审查&#xff08;Code Review&#xff09;是一个至关重要的步骤。它不仅可以帮助团队成员之间共享知识和经验&#xff0c;还可以提高代码质量&#xff0c;减少错误和安全漏洞。以下是一些常见的前端 Code Review 问题和相应的解决方案。 1. 不一致…...

Python监控AWS ECS集群和服务的CPU和内存利用率

在电子商务或其他行业,重要节日通常会带来大量的流量和订单,这对应用程序的资源利用率提出了更高的要求。为了确保应用程序在节日期间能够顺利运行,提前监控和优化资源利用率至关重要。 在本文中,我们将介绍如何使用Python编写一个脚本,从AWS CloudWatch中获取ECS集群和服务的…...

淘宝天猫API接口深度解析:如何高效利用商品详情与关键词搜索商品列表功能

在电子商务的浩瀚海洋中&#xff0c;淘宝和天猫作为两大巨头&#xff0c;其平台上的商品信息无疑是商家和消费者关注的焦点。为了更高效地获取这些信息&#xff0c;淘宝天猫开放平台提供了丰富的API接口&#xff0c;其中商品详情接口和关键词搜索商品列表接口尤为关键。本文将深…...

python快速接入阿里云百炼大模型

1.注册阿里云账号 访问阿里云官网&#xff0c;完成账号注册流程&#xff0c;并开通百炼服务&#xff0c;网址&#xff1a;https://bailian.console.aliyun.com 2.获取 API Key 登录阿里云百炼平台&#xff0c;在个人中心或相关设置页面找到并生成 API Key&#xff0c;妥善保管此…...

基于AI对话生成剧情AVG游戏

游戏开发这个领域&#xff0c;一直有较高的学习门槛。作为一个非专业的游戏爱好者&#xff0c;如果想要开发游戏&#xff0c;往往受制于游戏引擎的专业程度&#xff0c;难以完成复杂的游戏项目。 AI IDE的诞生&#xff0c;提供了另外的一种思路&#xff0c;即通过AI 生成项目及…...

[flutter] 安卓编译配置

Maven 镜像 android/build.gradle buildscript {ext.kotlin_version 1.7.10repositories {google() // mavenCentral()maven { url https://maven.aliyun.com/repository/google }maven { url https://maven.aliyun.com/repository/jcenter }maven { url https://mav…...

PyFlow输入系统定制化:创建专属快捷键映射的完整指南

PyFlow输入系统定制化&#xff1a;创建专属快捷键映射的完整指南 【免费下载链接】PyFlow Visual scripting framework for python 项目地址: https://gitcode.com/gh_mirrors/py/PyFlow PyFlow作为一款强大的Python可视化脚本框架&#xff0c;允许用户通过直观的节点编…...

Hermes性能优化:如何提高邮件生成速度和降低资源消耗

Hermes性能优化&#xff1a;如何提高邮件生成速度和降低资源消耗 【免费下载链接】hermes Golang package that generates clean, responsive HTML e-mails for sending transactional mail 项目地址: https://gitcode.com/gh_mirrors/he/hermes Hermes是一个Golang包&a…...

计算机毕业设计:Python智能二手车数据可视化推荐系统 Flask框架 requests爬虫 协同过滤推荐算法 可视化 汽车之家 机器学习(建议收藏)✅

博主介绍&#xff1a;✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久&#xff0c;选择我们就是选择放心、选择安心毕业✌ > &#x1f345;想要获取完整文章或者源码&#xff0c;或者代做&#xff0c;拉到文章底部即可与…...

旺季仓容紧张跨境卖家如何提前规划备货与入仓

决胜销售旺季&#xff1a;跨境卖家的备货与入仓战略指南随着全球电商购物节日益临近&#xff0c;无论是年末的“黑色星期五”、圣诞季&#xff0c;还是区域性的大促活动&#xff0c;一个共同的挑战悄然浮现&#xff1a;仓库容量告急。对于跨境卖家而言&#xff0c;旺季不仅是销…...

实战指南:Autofac 依赖注入在微服务架构中的高效应用

1. Autofac在微服务架构中的核心价值 微服务架构最大的挑战之一就是如何优雅地管理数百个服务的依赖关系。我经历过一个电商系统重构项目&#xff0c;当单体应用拆分成30多个微服务后&#xff0c;手工管理服务依赖就像在玩多米诺骨牌——改一个服务参数可能引发连锁反应。这时候…...

直接上代码吧,咱们先用Python+OpenCV搞个帧间差法的Demo。看这段核心代码

基于帧间差法进行视频目标检测处理 【是仅源码的价格】 【可写完整课程设计文档报告】 需要或需要请随时联系&#xff0c;博主常在线能秒回 1.[1]视频目标检测&#xff1a; 视频目标检测是指从视频流中自动识别和提取出运动目标的过程 视频目标检测算法通常基于以下原理和方法&…...

如何快速掌握notepad--:国产跨平台文本编辑器的完整指南

如何快速掌握notepad--&#xff1a;国产跨平台文本编辑器的完整指南 【免费下载链接】notepad-- 一个支持windows/linux/mac的文本编辑器&#xff0c;目标是做中国人自己的编辑器&#xff0c;来自中国。 项目地址: https://gitcode.com/GitHub_Trending/no/notepad-- 引…...

收藏备用|大模型应用演进3阶段(React/Multi-agent+Spring AI Alibaba实战)

本文详细拆解大模型应用的三大演进阶段&#xff0c;从基础组件构建、工作流编排&#xff0c;到自主Agent落地&#xff0c;重点剖析React模式与Multi-agent模式的核心逻辑及实现原理。结合Spring AI Alibaba框架&#xff0c;手把手演示Java如何快速实现简单Multi-agent框架&…...

Claude Code教程(四)| Codex 配置(插件安装)

Claude Code教程&#xff08;四&#xff09;| Codex 配置&#xff08;插件安装&#xff09;一、核心定位&#xff08;一句话看懂&#xff09;二、前置准备&#xff08;必做&#xff09;2.1 核心环境要求&#xff08;极简&#xff09;2.2 关键说明&#xff08;重要&#xff09;三…...

一次慢改表引发的线上死锁事故复盘

一次慢改表引发的线上死锁事故复盘 一、事故背景 在一次常规的数据库表结构变更过程中&#xff0c;对某核心业务表执行了慢改表操作&#xff08;使用 pt-online-schema-change&#xff09;。操作开始后&#xff0c;短时间内触发报警&#xff1a; 部分接口响应时间显著上升出现请…...