【Git系列】了解什么是版本控制

news2024/9/22 23:39:12

🐳了解什么是版本控制

    • 🧊1. 什么是版本控制
    • 🧊2. 为什么要有版本控制
    • 🧊3. 常见的版本控制工具
    • 🧊4. 版本控制分类
      • 🪟4.1 本地版本控制
      • 🪟4.2 集中版本控制
      • 🪟4.3 分布式版本控制

学习git之前,我们需要先明白一个概念,版本控制!

🧊1. 什么是版本控制

​ 版本控制(Revision control)是一种软件工程技术,用于管理开发过程中对文件、目录或工程等内容的修改历史,以便查看更改历史记录并恢复以前的版本。

简单说就是用于管理多人协同开发项目的技术。

​ 举个例子,假设你正在开发一个网站,你和你的团队成员都在修改网站的代码。在没有版本控制的情况下,如果你想回到之前的版本,你需要手动保存每个版本的副本。这样做不仅容易出错,而且难以管理。但是,如果你使用版本控制系统,它会自动为你保存每次提交的快照。这样,如果你想回到之前的版本,只需在版本控制系统中选择相应的版本即可。此外,版本控制系统还可以帮助你查看每个版本之间的差异,并帮助你解决代码冲突。

🧊2. 为什么要有版本控制

版本控制非常重要,因为它可以帮助开发人员更好地管理他们的代码。以下是一些使用版本控制的好处:

  • 备份和恢复:版本控制系统会自动保存每次提交的快照,因此你可以随时回到之前的版本。
  • 协作:版本控制系统可以帮助多个开发人员协同工作,解决代码冲突。
  • 追踪更改:版本控制系统可以帮助你查看每个版本之间的差异,了解谁更改了什么。
  • 测试和调试:使用版本控制系统,你可以轻松地切换到不同的版本,以便测试和调试。

总之,版本控制可以帮助开发人员更好地管理他们的代码,提高开发效率。

🧊3. 常见的版本控制工具

主流的版本控制器
Git是一个分布式版本控制系统,最初由 Linus Torvalds 开发,用于管理 Linux 内核开发。
SVN(Subversion)是一个集中式版本控制系统,由 CollabNet 开发

除了 GitSVN 之外,还有一些其他的版本控制器,例如 MercurialBazaarDarcs 等。这些版本控制器都有各自的特点和优势,可以根据项目需求选择合适的版本控制器。

🧊4. 版本控制分类

🪟4.1 本地版本控制

  本地版本控制系统是一种早期的版本控制方法,它在本地计算机上保存文件的历史版本。在没有使用版本控制的适合,大多数人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别。这么做唯一的好处就是简单,但是特别容易犯错。有时候会混淆所在的工作目录,一不小心会写错文件或者覆盖意想外的文件。

  为了解决这个问题,人们很久以前就开发了许多种本地版本控制系统,大多都是采用某种简单的数据库来记录文件的历次更新差异。其中最流行的一种叫做 RCS,现今许多计算机系统上都还看得到它的踪影。RCS 的工作原理是在硬盘上保存补丁集(补丁是指文件修订前后的变化);通过应用所有的补丁,可以重新计算出各个版本的文件内容。

请添加图片描述

  然而,随着项目规模和协作人数的增加,本地版本控制系统很难满足需求。因此,人们开发了集中式分布式版本控制系统来解决这些问题。

🪟4.2 集中版本控制

集中式版本控制是一种使用中央服务器来管理代码版本和备份的系统。所有的用户都需要从中央服务器获取或提交代码,这样可以方便地协同工作和控制权限,但也需要依赖网络环境和中央服务器的稳定性。

代表产品:SVNCVSVSS

img

  假设你和你的同事都在开发一个网站项目,你们使用 SVN(Subversion)这个集中式版本控制系统来管理代码。你们的代码都存放在一个中央服务器上,每次你想要修改或添加代码,你就需要从服务器上下载最新的版本,然后在本地编辑,再上传到服务器上。这样,你就可以保证你的代码和你的同事的代码是一致的,而且服务器上有所有的历史记录,方便追踪和回滚。这就是一个集中式版本控制。

  这种做法带来了许多好处,特别是相较于老式的本地版本控制系统来说。现在,每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限,并且管理一个 CVCS 要远比在各个客户端上维护本地数据库来得轻松容易。

  然而,这种做法也有一些缺点。最显而易见的缺点是中央服务器的单点故障。如果宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。如果中心数据库所在的磁盘发生损坏,又没有做恰当备份,毫无疑问你将丢失所有数据——包括项目的整个变更历史,只剩下人们在各自机器上保留的单独快照。

🪟4.3 分布式版本控制

  分布式版本控制允许多个开发者在本地分别拥有一个完整的代码库,而不是像集中式版本控制那样,所有开发者都需要连接到同一个中央代码库。这意味着开发者可以在本地进行版本控制操作,而不必依赖于中央服务器。相当于中央服务器和本地都有一个版本控制系统,开发过程中两者不冲突也不依赖。

  常见的分布式版本控制有Git,是目前世界上最先进的分布式版本控制系统之一。它可以让每个人都可以创建一个独立的代码仓库用于管理,各种版本控制的操作都可以在本地完成。

img

  假如两个同事对同一个项目进行开发,本地都安装了一个Git,这时他们甚至不必连接到中央服务器,在没有网络连接的情况下进行版本控制操作,张三开发A功能,李四开发B功能,开发完后他俩同时推给中央服务器的版本控制系统,此时张三和李四都能从中央服务器拉取对方的代码并在本地合并,即使中央服务器损坏,他们本地都包含项目的整个变更历史,解决集中式版本控制丢失所有数据的缺点,而这里的中央服务器的作用可以理解为方便大家交换和修改。


请添加图片描述

一、了解什么是版本控制

二、Git概述

三、Git下载与安装教程

四、Git相关命令

五、Git分支操作

六、Git到远程仓库

七、Git配置SSH免密登录

八、IDEA集成Git


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

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

相关文章

socket 基础

Socket是什么呢? ① Socket通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过“套接字”向网络发出请求或者应答网络请求。 ② Socket是连接运行在网络上的两个程序间的双向通信的端点。 ③ 网络通讯其实指…

1.1.2 SpringCloud 版本问题

目录 版本标识 版本类型 查看对应版本 版本兼容的权威——官网: 具体的版本匹配支持信息可以查看 总结 在将Spring Cloud集成到Spring Boot项目中时,确保选择正确的Spring Cloud版本和兼容性是非常重要的。由于Spring Cloud存在多个版本,因此…

Vulnhub: shenron: 3靶机

kali:192.168.111.111 靶机:192.168.111.171 信息收集 端口扫描 nmap -A -sC -v -sV -T5 -p- --scripthttp-enum 192.168.111.171 修改hosts后访问目标80端口,发现是wordpress wpscan收集目标用户,爆破出密码:ilov…

台灯头灯手电筒UL153亚马逊美国站测试要求

在将台灯、头灯或手电筒上架到亚马逊美国站之前,UL153测试是必不可少的一项认证。UL153是美国安全实验室(Underwriters Laboratories)颁布的一项标准,旨在确保产品的安全性和可靠性。那么,我们应该如何办理UL153测试报…

亚马逊调整数据存档政策:超两年的订单将从9月起存档!

2023年9月起,亚马逊美国站和欧洲站宣布对订单数据存档政策进行调整。该调整意味着自2023年9月起,所有历时两年以上的订单将按月存档。此举是为了确保客户的个人隐私和数据安全,存档订单将不再包含买家的个人身份信息,如姓名、电话…

git操作:修改本地的地址

Windows下git如何修改本地默认下载仓库地址 - 简书 (jianshu.com) 详细解释: 打开终端拉取git时,会默认在git安装的地方,也就是终端前面的地址。 需要将代码 拉取到D盘的话,现在D盘创建好需要安放代码的文件夹,然后…

Linux系统管理:虚拟机Rocky Linux安装

目录 一、理论 1.Rocky Linux 2.NetworkManager配置 3.ipaddress 配置文件 4.nmtui 配置 ipaddress 二、实验 1.虚拟机Rocky Linux安装准备阶段 2.安装Rocky Linux 3.进入系统 三、问题 1.网络配置文件权限不够 一、理论 1.Rocky Linux (1&#xff0…

《2023数字化采购发展报告》发布,北京筑龙采购供应链数字化实践成功入选

近日,由亿邦智库联合中国物流采购与联合会公共采购分会共同编制的《2023数字化采购发展报告》(下文称《报告》)在第四届国有企业数智化采购与智慧供应链高峰论坛上重磅发布。作为一家服务30行业超大型及大中型国有企业的采购供应链数字化产品…

基于linux下的高并发服务器开发(第四章)- 多进程实现并发服务器(回射服务器)

1. socket // 套接字通信分两部分: - 服务器端:被动接受连接,一般不会主动发起连接 - 客户端:主动向服务器发起连接 2.字节序转换函数 当格式化的数据在两台使用不同字节序的主机之间直接传递时,接收端必然错误…

螺旋矩阵 II——力扣59

文章目录 题目描述法一 模拟 题目描述 法一 模拟 初始化一个二维向量&#xff0c;名为matrix&#xff0c;它有n行和n列。向量的每个元素都是一个整数&#xff0c;初始化为0。初始化二维向量的语法如下&#xff1a;vector<vector<int>> matrix(n, vector<int>…

unity 添加动画步骤

动画中不能有这俩组件会冲突 1.创建动画控制器 2.在需要做动画的节点添加动画组件 Animatr 3.把动画器拉到Animatr组件控制器中去 4.创建动画&#xff0c;把创建的动画推拽到动画器中。 5.点击绑定Animatr的节点把动画拖拽到动画播放器中。 6.点击动画可以调节速度 7. 配置参数…

Linux操作系统学习,Linux基础命令大全

目录 第一章、Linux简介和安装1.1&#xff09;Linux简介和分类1.2&#xff09;安装VMware虚拟机&#xff0c;在虚拟机中安装CentOS 7 第二章、虚拟机中Linux的IP地址配置详解2.1&#xff09;什么是IP地址&#xff0c;如何查看2.2&#xff09;虚拟机NAT模式中Linux的IP地址设置有…

上海亚商投顾:沪指冲高回落 两市成交重回万亿

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪 三大指数今日冲高回落&#xff0c;盘初一度集体涨超1%&#xff0c;随后涨幅明显回落&#xff0c;上证50午后一度翻…

蓝桥杯2018省赛全球变暖dfs

全球变暖 问题描述格式输入格式输出样例输入样例输出评测用例规模与约定解析参考程序 问题描述 格式输入 格式输出 输出一个整数 样例输入 样例输出 1 评测用例规模与约定 最大运行时间&#xff1a;1s最大运行内存: 256M 解析 采用dfs的方式进行搜索&#xff0c;首先输入地…

python和java哪个更有前景,python和java哪个更有前途

大家好&#xff0c;小编为大家解答python和java哪个好学,零基础的问题。很多人还不知道python和java哪个更容易入门&#xff0c;现在让我们一起来看看吧&#xff01; 进入编程行业是很多人的梦想&#xff0c;现在越来越多的人都想要通过培训的方式进入IT行业中&#xff0c;但是…

Redis - 缓存的双写一致性

概念&#xff1a; 当修改了数据库的数据也要同时更新缓存的数据&#xff0c;缓存和数据库的数据要保持一致 那为什么会有不一致的情况呢&#xff1f; 如果不追求一致性&#xff0c;正常有两种做法 先修改数据库 后删除旧的缓存先删除旧的缓存 再修改数据库 我们以先删除旧的…

「教程」如何使用一套代码在多种程序中接入天气预警API

引言 天气预警的重要性不言而喻&#xff0c;在遭受自然灾害和极端天气时&#xff0c;及时获得预警信息可以拯救生命和减少财产损失。如今&#xff0c;随着科技的进步&#xff0c;开发者和企业可以借助天气预警 API 这款强大的服务&#xff0c;将实时预警信息集成到自己的应用中…

深刻理解python特性-列表推导式和生成器表达式

哈喽大家好&#xff0c;今天给大家介绍两个Python中特性-列表推导式和生成器表达式 今天我想向你介绍python语言的两个非常有用的特性&#xff1a;列表推导式和生成器表达式。这两个特性都可以让你用一行简洁的代码来创建一个序列&#xff0c;而不需要写循环或者函数。但是它们…

十年测试经验告诉你单元测试到底测什么

今天的前端夜点心我们来聊聊在项目中单元测试应该测些什么&#xff1f; 以国内互联网的开发节奏&#xff0c;在前端业务项目中全面覆盖单元测试有时显得不太可行&#xff0c;主要是因为以下这些绊脚石&#xff1a; UI 交互复杂&#xff0c;路径难以覆盖全面 工期紧&#xf…

HCIA云计算 V5.0题库

云计算&#xff0c;这是近几年听得最多词了&#xff0c;云计算对于网络的发展帮助非常大&#xff0c;它自身所产生的价值是不可估量的&#xff01;所以云计算的岗位对于很多IT公司来说&#xff0c;都是有一定地位的。华为认证云计算面向的对象很简单就是对云计算技术感兴趣的人…