重生之我在CSDN学Git -- Git的历史渊源与基本介绍

2024-01-04 06:20

本文主要是介绍重生之我在CSDN学Git -- Git的历史渊源与基本介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关于Git

    • 写在前面
  • 你滴林皇 无限猖狂
  • Git的基本介绍
    • 总结

写在前面

The pyramid is built with stones pieces of.
金字塔是用一块块的石头堆砌而成的。
------ 威廉·莎士比亚


你滴林皇 无限猖狂

林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds,1969年12月28日- ),芬兰赫尔辛基人,著名的电脑程序员,Linux内核的发明人及该计划的合作者 [1] ,毕业于赫尔辛基大学计算机系,1997年至2003年在美国加州硅谷任职于全美达公司(Transmeta Corporation),现受聘于开放源代码开发实验室(OSDL:Open Source Development Labs, Inc),全力开发Linux内核。与妻子托芙(Tove,芬兰前女子空手道冠军)育有三个女孩。著有自传《乐者为王》。

在这里插入图片描述
在这里插入图片描述

↑没错就是这个笑起来核蔼可亲的男人

我们现在耳熟能详的linux系统,就是这位老哥在大学期间构建出来的,对,他当时21岁。
(别人的21岁,编程大佬;我们的21岁,侥幸健在)

最早的时候,linux系统中的代码都是经由世界各地的志愿者通过diff的方式发送给linus,然后他再一点点手动合并;不过就算是大佬,如此庞大的代码库再去用手工的方式去管理很难不会感到困难,所以我们的林皇就选择了一个商业的版本控制系统BitKeeper,双方合作的非常愉快,满满一幅欣欣向荣的景象。。。吗?合作的第三年,也就是2005年,他们之间发生了亿点小变故,linux最终和BitKeeper分道扬镳,但是没有控制系统是不行的,所以你滴林皇又找了一家公司去借用他们的控制系统吗?当然没有,他自己花了两周的时间用C写了一个分布式版本控制系统,这就是大名鼎鼎的Git。短短一个月之内,linux系统的源码就已经可以由Git管理了,之后Git迅速发展,是目前世界上最先进的分布式版本控制系统。

BitKeeper的东家BitMover,我知道你们很急,但是你们先别急。
如果不是当年你们的“举手之劳”,可能今天我们就没有这样一款免费而且好用的Git。
听我说谢谢你~
(BitMover内心:“巴山楚水凄凉地,baby can you kiss me?”)


Git的基本介绍

Git是一种分布式的版本控制工具,也是一种主流的代码托管技术。

有朋友要问了,版本控制是什么呢?版本控制是指软件开发过程中各种程序代码,说明文档等文件的变更进行管理,它将追踪文件变化,记录文件的变更时间,变更内容,甚至变更执行人进行记录。

差点忘了介绍集中式和分布式了,这段划掉

集中式版本控制系统
集中式版本控制系统的版本库是集中存放在中央服务器中。
死板的官话讲完了,举个例子来简单说明,可以把中央服务器比作一座大图书馆,我们每一个人就是其中的图书管理员,假如发现了某本书的摆放位置不对,我们肯定要先把他取出来对吧,然后找到正确的位置,再把书本重新摆放进去,这就是集中式版本控制系统的流程。
它的优点我不置与否,但是缺点可以拿出来好好说说。缺点很精简,一句话就可以总结,它必须在联网状态下才能工作。企业中一般都是用的他们内部的局域网络,所以网速可以保障,但是一旦使用互联网的话,可能会因为网速的原因导致使用非常不便。
常见的集中式版本控制系统
CVS:最早的一款免费开源的集中式版本控制系统,但是存在提交的文件不完整,版本库损坏等问题;
SVN:目前市面上应用最多的免费开源的集中式版本控制系统,它修复了CVS的一些稳定性问题;
还有一些付费的,比如IBM公司的ClearCase,微软的VSS等。

分布式版本控制系统
分布式版本控制系统没有“中央服务器”,但是每个人的电脑上都是一个完成的版本库。
顾名思义,使用分布式版本控制系统的时候不需要联网,和集中式版本控制系统相比,安全性要高了很多,因为每个人电脑里都有完整的库,某台电脑数据损坏直接从别的电脑复制一份就可以,而集中式版本控制系统的中央服务器如果出了问题,那么所有的工作都不可以进行了,这就是分布式版本控制系统最大的优点。
而Git则是分布式版本控制系统中的佼佼者,它强大的分支管理和便捷的使用,把SVN等远远地抛在了后面。


总结

本文简单介绍了一下GIt的历史渊源以及基本介绍,希望大伙看了以后不是屎壳郎碰上便秘的,白来一趟。

“有些人生来就具有统率百万人的领袖风范;另一些人则是为写出颠覆世界的软件而生。唯一一个能同时做到这两者的人,就是托瓦兹。”

这是美国《时代》周刊对“Linux之父”,“Git之父”林纳斯·托瓦兹给予的极高评价,相信以后Git会在他的带领下越做越好。

最后还是要说一句我们的老熟人BitMover公司,你可真是 肚脐眼儿放屁,怎么响的啊


这篇关于重生之我在CSDN学Git -- Git的历史渊源与基本介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/568416

相关文章

IDEA中新建/切换Git分支的实现步骤

《IDEA中新建/切换Git分支的实现步骤》本文主要介绍了IDEA中新建/切换Git分支的实现步骤,通过菜单创建新分支并选择是否切换,创建后在Git详情或右键Checkout中切换分支,感兴趣的可以了... 前提:项目已被Git托管1、点击上方栏Git->NewBrancjsh...2、输入新的分支的

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

ModelMapper基本使用和常见场景示例详解

《ModelMapper基本使用和常见场景示例详解》ModelMapper是Java对象映射库,支持自动映射、自定义规则、集合转换及高级配置(如匹配策略、转换器),可集成SpringBoot,减少样板... 目录1. 添加依赖2. 基本用法示例:简单对象映射3. 自定义映射规则4. 集合映射5. 高级配置匹

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

SQL BETWEEN 语句的基本用法详解

《SQLBETWEEN语句的基本用法详解》SQLBETWEEN语句是一个用于在SQL查询中指定查询条件的重要工具,它允许用户指定一个范围,用于筛选符合特定条件的记录,本文将详细介绍BETWEEN语... 目录概述BETWEEN 语句的基本用法BETWEEN 语句的示例示例 1:查询年龄在 20 到 30 岁

mysql中insert into的基本用法和一些示例

《mysql中insertinto的基本用法和一些示例》INSERTINTO用于向MySQL表插入新行,支持单行/多行及部分列插入,下面给大家介绍mysql中insertinto的基本用法和一些示例... 目录基本语法插入单行数据插入多行数据插入部分列的数据插入默认值注意事项在mysql中,INSERT I

mapstruct中的@Mapper注解的基本用法

《mapstruct中的@Mapper注解的基本用法》在MapStruct中,@Mapper注解是核心注解之一,用于标记一个接口或抽象类为MapStruct的映射器(Mapper),本文给大家介绍ma... 目录1. 基本用法2. 常用属性3. 高级用法4. 注意事项5. 总结6. 编译异常处理在MapSt