【Git】git 从入门到实战系列(二)—— git 介绍以及安装方法 (文末附带视频录制操作步骤)

文章目录

    • 一、前言
    • 二、git 是什么
    • 三、版本控制系统是什么
    • 四、本地 vs 集中式 vs 分布式
      • 本地版本控制系统
      • 集中式版本控制系统
      • 分布式版本控制系统
    • 五、安装 git

一、前言

本系列上一篇文章【Git】git 从入门到实战系列(一)—— Git 的诞生,Linus 如何在 14 天内编写出 Git?我们讲述了 git 诞生的过程。此篇我们对 git 的特点进行总结,以及总结 git 的安装方法。

该系列浅显易懂,有理论,有实例,实用性超强,读者可以边学边练,不枯燥,易上手,读完该系列你可以通过 git 轻松地完成你的工作。该系列不会让你成为git专家,但用于工作已绰绰有余。

二、git 是什么

git 是一个免费、开源的分布式版本控制系统。用于跟踪文件的修改,特别是在软件开发中,已经成为现代软件开发中最流行的版本控制系统之一。在许多情况下,尤其是在团队协作、开源项目和企业开发中,git 几乎是标准选择。

三、版本控制系统是什么

git 是一个分布式版本控制系统,那什么是版本控制系统?版本控制系统是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。版本控制系统不仅可以应用于软件源代码的文本文件,而且可以对任何类型的文件进行版本控制。常见的版本控制系统有:cvs、svn、git。

纵观版本控制系统的发展历史,《Version Control By Example》一书的作者 Eric Sink 在他的书中对版本控制进行了分类,广义上讲,版本控制工具的历史可以分为三代:第一代为本地版本控制系统,第二代为集中式版本控制系统,第三代为分布式版本控制系统。

四、本地 vs 集中式 vs 分布式

本地版本控制系统

第一代版本控制系统被称为本地版本控制系统。通过加锁将并发执行转换成顺序执行。 一次只能有一个人处理文件。如果多人开发,每个人都在不同的系统和电脑上开发,没办法协同工作。

具体流程如下:首先,应该把文件放在一个服务器上,方便使用者上传或下载文件;其次,任何人想对文件修改时,需要先把这个文件加锁,通过checkout指令,使得其他人无法修改;最后,当修改完成之后,需要释放锁,通过checkin指令,形成一个新的版本,存放到服务器端。

第一代版本控制系统主要有 RCS、SCCS(1972年发布)和 DSEE(被认为是 Atria ClearCase 的前身)。目前,有些项目还在使用!

集中式版本控制系统

第二代版本控制系统被称为集中式版本控制系统(Centralized Version Control Systems,CVCS),其对同步修改更加宽容,可以让在不同系统上的开发者协同工作,所有的用户电脑都是从中央服务器获取代码或者是将本地的代码提交到中央服务器。

集中式管理系统的特点:版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。本地是没有版本库的修改记录的,所以集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟。

集中式版本控制系统的缺点也是显而易见的,最显而易见的缺点是中央服务器的单点故障。 如果宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。如果中心数据库所在的磁盘发生损坏,又没有做恰当备份,毫无疑问你将丢失所有数据——包括项目的整个变更历史,只剩下人们在各自机器上保留的单独快照。本地版本控制系统也存在类似问题,只要整个项目的历史记录被保存在单一位置,就有丢失所有历史更新记录的风险。

第二代版本控制系统主要有 CVS、SourceSafe、Subversion、Team Foundation Server、SVN。

分布式版本控制系统

第三代版本控制系统被称为分布式式版本控制系统(Distributed Version Control Systems,DVCS),其允许合并和提交分开。在每个使用者电脑上就有一个完整的数据仓库,没有网络依然可以使用。在这类系统中,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。 因为每一次的克隆操作,实际上都是对代码仓库的完整备份。
在这里插入图片描述
分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

既然是多人协作,我们肯定是需要指定一个人的电脑作为总仓库,用来同步各开发者的私有仓库,所有人从总仓库上提交更新,拉取别人的提交,这样才能保证总仓库保留了所有人的改动。 这个总仓库其实就充当了公共服务器仓库的角色。

所以我们通常说的分布式管理系统的服务器其实就是找一台电脑充当公共服务器的角色,每天24小时开机,其他每个人都从这个服务器仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。在分布式版本控制系统中,每个参与者的本地也会有一个完整的仓库。即使服务器端崩溃,我们仍然可以使用 git(仅在本地仓库管理我们的代码),在网络具备时,再和服务器进行同步即可!

第三代版本控制系统主要有 Bazaar、Git、Mercurial、BitKeeper、Monotone。且第三代版本控制系统已经大有一同江湖的趋势。

五、安装 git

ubuntu上安装git
你可以试着输入 git,看看系统有没有安装 git。
在这里插入图片描述
像上面的命令,系统会提示你Git没有安装,还会提示你如何安装Git。
一般按照以下步骤安装 git
【1】、更新软件包列表
在安装之前,首先更新你本地的包列表,确保你能获取到最新的软件版本。

sudo apt update

【2】、安装 git
使用下面的命令安装 git:

sudo apt install git

【3】、验证 git 安装
安装完成后,你可以通过以下命令检查 git 是否安装成功,以及查看安装的版本:

git --version

这将显示 git 的版本号,比如 git version 2.17.1
在这里插入图片描述
【4】、配置 Git
在使用 git 之前,建议配置用户信息,这样在你提交代码时能够正确地记录作者信息。执行以下命令来设置你的姓名和邮箱:

git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"

【5】、验证配置
通过以下命令可以查看你的 git 配置是否已成功设置:

git config --list

在这里插入图片描述

操作视频如下
ubuntu上git安装方法操作步骤
到此,你已在 ubuntu 上成功安装并配置了 git。你可以开始创建git仓库、克隆代码、提交更改以及进行其他版本控制操作。今天总结到此,下一篇总结创建版本库等内容。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【2024蓝桥杯/C++/B组/小球反弹】

题目 分析 Sx 2 * k1 * x; Sy 2 * k2 * y; (其中k1, k2为整数) Vx * t Sx; Vy * t Sy; k1 / k2 (15 * y) / (17 * x); 目标1:根据k1与k2的关系,找出一组最小整数组(k1, k2)&#xff…

NLP-使用Word2vec实现文本分类

Word2Vec模型通过学习大量文本数据,将每个单词表示为一个连续的向量,这些向量可以捕捉单词之间的语义和句法关系。本文做文本分类是结合Word2Vec文本内容text,预测其文本标签label。以下使用mock商品数据的代码实现过程过下: 1、…

PCL从理解到应用【08】 点云特征 | 法线估计 | 主曲率估计

前言 在PCL中,有多种方法和函数可以用来提取点云特征,本文介绍几何特征。 其中,几何特征主要包括法线估计和主曲率估计。 这些特征能够描述点云表面的几何形状,常用于进一步的点云处理和分析,如配准、分割和物体识别…

利用canvas 实现图片的标注,把标注像素点传入到后端

背景:我们有一个摄像的产品,拍照传统的水表盘面,我们需要框选水表读数,标注点传到后端,后端根据标注点自动去截取摄像表拍摄回来的图片,然后拿到大模型里面进行训练。由于同一只表拍摄的画面都是一样的&…

【时时三省】unity test 测试框架 使用 code blocks 移植

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 目录 1,使用 Code::Blocks 17.12 创建工程 2,移植文件至该工程下: 移入的文件为: 被移入的文件介绍: 更改代码: 向工程添加文…

k8s 部署RuoYi-Vue-Plus之ingress域名解析

可参看https://blog.csdn.net/weimeibuqieryu/article/details/140798925 搭建ingress 1.创建Ingress对象 ingress-ruoyi.yaml其中host替换为你对应域名,需要解析域名到服务器, 同时为后端服务添加了二级域名解析 api. 访问http://xxx.xyz/就能访问前端&#xff0…

力扣SQL50 修复表中的名字 字符串函数

Problem: 1667. 修复表中的名字 👨‍🏫 参考题解 select user_id, CONCAT(UPPER(left(name, 1)), LOWER(RIGHT(name, length(name) - 1))) as name from Users order by user_id

【Linux系统编程】:进程地址空间1

1.引出进程地址空间 因为str指向的是字符串首字母的地址,首字母是字符常量“h”,地址存储在字符常量区,无法修改,故报错。 Linux进程地址空间与进程内存布局详解 - 知乎 (zhihu.com) 我们编写一段代码,来认识一下存储…

JavaWeb学习——mybatis

目录 一、入门学习 1、什么是mybatis? 2、入门使用 3、配置SQL提示 4、数据库连接池 5、lombok 二、基础操作学习 1、删除 2、新增 3、更新 4、查询 三、XML配置文件 1、映射规范 2、示例代码展示 四、动态SQL 1、学习 2、学习 3、学习 4、学习 一…

Django文件上传

【图书介绍】《Django 5企业级Web应用开发实战(视频教学版)》_django 5企业级web应用开发实战(视频教学版)-CSDN博客 《Django 5企业级Web应用开发实战(视频教学版)》(王金柱)【摘要 书评 试读】- 京东图书 (jd.com) 本节主要介…

算法力扣刷题记录 六十三【回溯章节开篇】

前言 开始回溯章节学习。 在二叉树中预先体会了回溯。那么回溯单独来说是怎么回事? 一、基础知识学习 回溯基础知识参考链接 二、组合问题 2.1题目阅读 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答…

【C++入门(上)】—— 我与C++的不解之缘(一)

前言: 学完C语言和初阶数据结构,感觉自己又行了? 接下来进入C的学习,准备好接受头脑风暴吧。 一、第一个C程序 C 的第一个程序,梦回出学C语言,第一次使用C语言写代码;这里使用C写第一个C代码。 …

对优先级队列(堆)的理解

目录: 一. 优先级队列: 二. 优先级队列的模拟实现: 三.常用接口介绍: 一. 优先级队列: 1 概念: 队列是一种先进先出的数据结构,但有些情况下,操作的数据可能带有优先级,一般出队列时…

Linux系统目录结构

Linux系统下一切皆文件 !!! 系统启动必须: /boot : 存放启动Linux时所需的内核文件,包括压缩后的内核镜像文件(vmlinuz)、虚拟文件系统镜像文件(initrd.img)、启动引导grub的配置文件。/etc : 系统全局配置文件,会影…

从Excel高手到SQL大师-解锁数据分析的无限潜力 -10分钟读懂职场必备技能

目录 Excel 和 SQL:看似相似却大不相同的数据处理利器Excel vs SQL:表面相似,本质迥异Excel:直观但受限的电子表格SQL:强大而灵活的数据库查询语言 从 Excel 到 SQL:跨越鸿沟Excel 数据筛选SQL 数据筛选 结…

基于 Kafka 的经验:AutoMQ 和 MinIO 如何解决成本和弹性挑战

Apache Kafka 因其出色的设计和强大的功能而成为流式处理的事实标准。它不仅定义了现代流式处理的架构,而且其独特的分布式日志抽象还为实时数据流处理和分析提供了前所未有的功能。Kafka 的成功在于它能够满足高吞吐量和低延迟的数据处理需求,多年来&am…

论文阅读:Most Probable Densest Subgraphs

摘要 本文提出了一种在不确定图中发现最有可能稠密子图(MPDS)的新方法。不确定图中的每条边都有存在概率,使得计算稠密子图变得複杂。作者定义了稠密子图概率,并证明了计算该概率是#P难的。为了解决这个问题,设计了基…

数据科学 - 数据预处理 (数据清洗,结构化数据)

1. 前言 数据清洗与结构化数据在数据分析和机器学习项目中扮演着至关重要的角色。随着大数据时代的到来,数据的质量、准确性和可用性成为决定项目成功与否的关键因素。 数据清洗提高数据质量,保证数据集的一致性;促进数据分析与挖掘&#xf…

【大数据开发语言Scala的入门教程】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步! 🪁Scala 🪡Scala是一种功能丰富且具有强大表达能力的静态类型…

【2024蓝桥杯/C++/B组/传送阵】

题目 问题代码 #include<bits/stdc.h> using namespace std;const int N 1e610; int n; int porter[N]; int ans; int sign[N]; bool used;void dfs(int now, int cnt) {if(sign[now] && used){ans max(ans, cnt);return;}if(!sign[now]){cnt, sign[now] 1; …