【Git 从入门到精通】Git是干什么的?

news2024/10/6 6:50:13

文章目录

  • 一、Git简介
    • 1.发展历史
    • 2.工作机制分析
    • 3.代码托管中心
  • 二、理解版本控制
    • 1.什么是版本控制?
    • 2.版本控制的好处
    • 3.版本控制的手段
      • ①集中式版本控制工具
      • ②分布式版本控制工具

一、Git简介

Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。
Git 易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。其性能优于 Subversion、CVS、Perforce 和 ClearCase 等版本控制工具。

1.发展历史

在这里插入图片描述

2.工作机制分析

这里值得注意的是工作区及暂存区的代码可以删除修改掉,但是当代码提交到本地库的时候就没有办法再删除掉了。
除非将整个项目进行调整,因为下一个版本会依赖上一个版本。
在这里插入图片描述

3.代码托管中心

代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。

  • ➢ 局域网
    ✓ GitLab
  • ➢ 互联网
    ✓ GitHub(外网)
    ✓ Gitee 码云(国内网站)

二、理解版本控制

1.什么是版本控制?

版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。
版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换。
例如小明对毕业论文的一版又一版的修改,每一版修改之前会将原版保留,然后修改副本。这一个过程就可以理解为版本控制,直到修改出一版完美的、能达到我们要求的论文。
在这里插入图片描述

2.版本控制的好处

个人开发过渡到团队协作。大型项目就像盖大楼一样,多人协作可以使高楼拔地而起,而多人合作难免会有代码之间冲突,协作好事半功倍,协作不好只能说是豆腐渣工程。
在这里插入图片描述

3.版本控制的手段

版本控制软件按管理方式可以分为集中式版本控制工具与分布式版本控制工具。两者本质区别就是进行版本控制的位置不同,集中式版本控制工具在服务器中进行版本控制,分布式版本控制工具可以在用户本地进行版本控制。

①集中式版本控制工具

CVS、SVN(Subversion)、VSS……

  • 集中化的版本控制系统诸如 CVS、SVN 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制系统的标准做法。
  • 这种做法带来了许多好处,每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限,并且管理一个集中化的版本控制系统,要远比在各个客户端上维护本地数据库来得轻松容易。
  • 事分两面,有好有坏。这么做显而易见的缺点是中央服务器的单点故障。如果服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。

在这里插入图片描述

②分布式版本控制工具

Git、Mercurial、Bazaar、Darcs……
像 Git 这种分布式版本控制工具,客户端提取的不是最新版本的文件快照,而是把代码仓库完整地镜像下来(本地库)。这样任何一处协同工作用的文件发生故障,事后都可以用其他客户端的本地仓库进行恢复。因为每个客户端的每一次文件提取操作,实际上都是一次对整个文件仓库的完整备份。

分布式的版本控制系统出现之后,解决了集中式版本控制系统的缺陷:

  1. 服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)
  2. 每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/154776.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spool Print Fool(CVE-2022-21999 )提权漏洞

Spool Print Fool(CVE-2022-21999 )提权漏洞 文章目录 一、Print Spooler 简介二、漏洞简介三、影响版本四、本地复现五、漏洞修复 一、Print Spooler 简介 Print Spooler是打印后台处理服务,即管理所有本地和⽹络打印队列及控制所有打印⼯作…

Scala 模式匹配

文章目录Scala 模式匹配一、模式匹配1、基本语法2、语法说明3、案例示例二、模式守卫三、模式匹配类型1、匹配常量2、匹配类型3、匹配数组Scala 模式匹配 一、模式匹配 Scala 中的模式匹配类似于Java中的switch语法,但是scala 从语法中补充了更多的功能&#xff0…

Optional更优雅的判空

我们在日常的开发工作最经常碰到的异常就是空指针异常,排查起来非常麻烦影响开发效率。如果想避免这种问题,就要写大量的if(xx ! null){}这样的冗余代码,把自己的逻辑写入到括号内部,这样的代码看起来臃肿繁琐。JDK8中为我们提供了…

IP 分支组网解决方案

IP 分支机构组网解决方案在总部部署高性能设备作为中心网关,在各地分支机构分别部署一台产品作为分支机构接入网关,与总部网关进行加密的连接。融合多种产品特性,可有效、快速、安全的实现分支机构的远程接入。同时,采用集中管控平…

对象,类与面向对象编程 上

目录 前言 理解对象 属性的类型 数据属性【Data Properties】 访问器属性【Accessor Properties】 合并对象 对象标识及相等判定 增强的对象语法 1. 属性值简写 2.可计算属性 3.简写方法名 4.对象解构 5.嵌套解构 创建对象 工厂模式 构造函数模式 原型模式 原型…

【敲敲云】零代码平台快速入门指南—上篇

本文通过快速搭建一个《客户管理》应用,帮您快速掌握搭建敲敲云应用的基本思路和操作。 一、敲敲云简介 敲敲云是一个APaaS平台,零代码的应用搭建平台,无需编程简单易学,可以帮助业务人员在不写代码的情况下搭建个性化的CRM、ERP、OA等。敲敲云支持自动化工作流还可…

GIOU 附图说明

在目标检测中,常用IOU评价检测框和ground truth框的相似程度, IOU intersection / union. IOU的取值范围是[0,1]. 但是看下面这两种情况,两个目标框的距离是不一样的,这时它们的IOU都是0,反映不出来。 这时就可以用到…

【JavaGuide面试总结】Linux篇

【JavaGuide面试总结】Linux篇1.介绍一下inode2.说一下Linux系统的目录结构3.说一下Linux系统的文件类型1.介绍一下inode 硬盘的最小存储单位是扇区(Sector),块(block)由多个扇区组成。文件数据存储在块中。块的最常见的大小是 4kb,约为 8 个连续的扇区…

Linux系统编程——共享内存映射(进程间通信)

目录mmap函数1.函数原型2.建立映射区3.注意事项4.父子进程间mmap通信4.无血缘关系进程间mmap通信写进程:读进程:附:文件用于进程间通信mmap函数 1.函数原型 void *mmap(void *addr,size_t length, int prot,int flags&#xff0…

代码随想录训练营第五十六天

1.两个字符串的删除操作 题583 ①dp数组含义 由于有两个数组比较,所以用二维数组dp。dp[i] [j]表示以i-1为结尾的word1和以j-1为结尾的word2达到相等需要删除的元素的个数。 ②递推公式 两种情况,当word[i-1] word2[j-1]时,有没有i-1为结…

【Linux】gcc编译器的使用(程序的翻译过程)

目  录1 程序的翻译1.1预处理(进行宏替换)1.2 编译(生成汇编代码)1.3 汇编(生成机器可识别代码)1.4 链接(生成可执行文件或者库文件)1.5 gcc常用选项总结程序的翻译过程包括&#…

Diffie-Hellman密钥协商算法探究

作者 | 魔王赵二狗 导读 隐私计算(Privacy-preserving computation)是指在保证数据提供方不泄露原始数据的前提下,对数据进行分析计算的一系列信息技术,保障数据在流通与融合过程中的可用不可见。而Diffie–Hellman密钥协商是一种…

2023-01-10 mysql列存储引擎-聚合多线程并行扫表-VCPackGuardian策略LOCK_ALL-概要设计

摘要: 当前的pack淘汰策略为LOCK_ONE, 在多线程切换时导致pack地址丢失。 新设计LOCK_ALL策略以保证多线程聚合正常工作。 设计思想: 多线程聚合运算期间, 对持有的pack不做淘汰业务中对pack的读取和释放保持原有逻辑架构设计: 静态结构: 动态结构: 上层业务通过VirtualCol…

【学习笔记之Linux】工具之vim基本介绍

vim基本认识 vim是一种多模式的编辑器,它是vi的升级版本,它兼容vi所有的指令并加入了一些新的特性在里面。vi是一个老式的文本编辑器,功能相当齐全,vim则是在vi之上更进了一步,拥有代码补全、编译及错误跳转等功能&…

pytorch OutOfMemoryError

torch.cuda.OutOfMemoryError before: self.memory deque(maxlen50000) after: self.memory deque(maxlen500) ok.... pytorch模型提示超出内存cuda runtime error(2): out of memory - pytorch中文网 看到这个提示,表示您的GPU内存不足。由于我们经常在PyTo…

做外贸有没有好的软件?

在外贸电商行业中,邮件营销是非常重要的一种营销方式之一。除了性价比高,他还能对目标客户进行精准营销。但是,对于刚开始做的公司来讲,不注意方法和细节也难收获到理想的营销效果。 一、问题 1)不管理邮箱联系人 只…

13.Isaac教程--模型制作

模型制作 ISAAC教程合集地址: https://blog.csdn.net/kunhe0512/category_12163211.html 该软件包演示了具有软件定义装配工作流程的工厂场景。 在模拟工厂环境中,多个 AMR 在装配站之间运输材料,而每个装配站的机械臂拾取所需材料并将其放置在对接的 …

自定义el-pagination分页

项目场景: 提示:这里简述项目相关背景: vue项目使用el-ui库,由于原本的el-pagination显示字段和样式无法满足其他项目的设计要求,需要进行改动 el-ui官网: 改动后: 解决方案: 1…

golang字符串常见功能

文章目录1. 获取字符串长度2. 是否一xx开头3. 是否以xx结尾4. 是否包含5. 变大写6. 变小写7. 去两边8. 替换9. 分割10. 拼接11. string转换为int12. int转换为string13. 字符串和字节切片14. 字符串和rune切片15. string和字符1. 获取字符串长度 2. 是否一xx开头 3. 是否以xx结…

抖音seo优化排名

武汉微驱动科技有限公司 你有没有想过,同样是运营抖音,为什么别人的视频总是排在你的前面?你死磕创意,拍摄、剪辑,甚至比同行更投入,为什么他的收益总是高于你? 当下抖音搜索引擎的用户数量已经…