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

【git】P1 git 分布式管理系统简介

目录

  • git 是什么
  • 版本控制系统
    • 集中式版本控制系统
    • 分布式版本控制系统

在这里插入图片描述

git 是什么

git 是一个免费开源的 分布式版本控制系统,它使用一个特殊的叫做 “仓库(repository)” 的数据库来记录文件的变化。仓库中的每个文件都有一个完整的版本历史记录(如下图),可以看到谁在什么时间修改了哪些文件的哪些内容,在需要的时候也可以将文件恢复至之前的版本。

请添加图片描述
图片来源:GeekHour Git 课程

如果没有版本系统,那么我们只能通过最原始的方式管理文件,比如将文件按时间备份出多个副本,或将整个项目的每个版本都保存在不同的文件夹中。

请添加图片描述
图片来源:GeekHour Git 课程

而当很多项目成员在同时修改同一个项目的时候,就需要手工来合并两个人的修改内容。这样不但低效,管理起来也非常麻烦~

版本控制系统

版本控制系统 就是为了解决这些问题而诞生的,有了版本控制系统,我们就可以跟踪每个文件的变化,让项目成员之间的协作更加高效。

目前世界上最流行的版本控制系统有两种,一种是集中式版本控制系统,比如SVN、CVS等等,另一种是分布式版本控制系统,比如Git、Mercurial等。

请添加图片描述

集中式版本控制系统

集中式版本控制系统的工作流程如下图所示,所有的文件都保存在中央服务器上,每个人的电脑上只保存了一个副本,当你需要修改文件的时候,首先需要从中央服务器上下载最新的版本,然后添加你想要的修改内容,修改完成之后再上传会中央服务器。

在这里插入图片描述

集中式版本控制系统的优点是使用起来非常简单,只需要从中央服务器上下载最新的版本,修改完成之后再上传到中央服务器上就可以了。但是其缺点也非常明显,就是中央服务器的单点故障问题 —— 如果中央服务器出现故障或者网络连接出现问题,那么所有人都无法工作。只能等待中央服务器或者网络恢复正常。


分布式版本控制系统

而分布式版本控制系统就没有这个问题(如下图所示),每个人电脑上都有一个完整的版本库,我们可以在直接在本地进行修改,不需要考虑网络等问题。这样即使中央服务器出现故障,我们也可以继续工作。当需要将我们的修改内容分享给其他人的时候,只需要将仓库互相同步一下就可以了。

在这里插入图片描述

因为免费开源、速度快、功能强大,支持离线工作以及强大的分支管理等特性,Git 已经成为了目前世界上最先进的分布式版本控制系统。世界上超过 90% 的开源项目都在使用 Git 进行版本控制。

在这里插入图片描述

Github、GitLab、Gitee 等网站上托管的开源项目,也都是使用 Git 来进行版本管理的。对于开发者来说,掌握 Git 是必不可少的技能,而这就是本系列博文记录和分享的核心。

http://www.xdnf.cn/news/18813.html

相关文章:

  • 开源 C++ QT Widget 开发(七)线程--多线程及通讯
  • 使用openCV(C ++ / Python)的Alpha混合
  • 安卓闪黑工具:aosp16版本Winscope之搜索功能剖析
  • GTCB:引领金融革命,打造数字经济时代标杆
  • 微生产力革命:AI解决生活小任务分享会
  • 欧盟《人工智能法案》生效一年主要实施进展概览(一)
  • MyBatis 之关联查询(一对一、一对多及多对多实现)
  • 解决VSCode中Cline插件的Git锁文件冲突问题
  • BiLSTM-Attention分类预测+SHAP分析+特征依赖图!深度学习可解释分析,Matlab代码实现
  • 【项目】分布式Json-RPC框架 - 抽象层与具象层实现
  • Elasticsearch中的协调节点
  • 人类记忆如何启发AI?LLM记忆机制综述解读
  • 软考-系统架构设计师 计算机系统基础知识详细讲解二
  • 人工智能之数学基础:离散型随机变量的概率分布有哪些?
  • 【大模型实战篇】基于开源视觉大模型封装多模态信息提取工具
  • 策略设计模式
  • Redis之Keys命令和Scan命令
  • 在python 代码中调用rust 源码库操作步骤
  • mysql优化-mysql索引下推
  • LeetCode - 946. 验证栈序列
  • Linux-孤儿进程和僵死进程
  • mysql是怎样运行的(梳理)
  • Python包管理与安装机制详解
  • EasyExcel 3.x 导出动态表头,动态sheet页
  • Rust:函数与控制流
  • 《Java反射与动态代理详解:从原理到实践》
  • 【Ansible】Ansible部署K8s集群--准备环境--配置网络
  • PEFT 模型解析(59)
  • 《数据之心》——鱼小妖的觉醒
  • ctfshow_萌新web16-web20-----文件包含日志注入