重生之我在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

相关文章

Git可视化管理工具(SourceTree)使用操作大全经典

《Git可视化管理工具(SourceTree)使用操作大全经典》本文详细介绍了SourceTree作为Git可视化管理工具的常用操作,包括连接远程仓库、添加SSH密钥、克隆仓库、设置默认项目目录、代码... 目录前言:连接Gitee or github,获取代码:在SourceTree中添加SSH密钥:Cl

redis中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

redis过期key的删除策略介绍

《redis过期key的删除策略介绍》:本文主要介绍redis过期key的删除策略,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录第一种策略:被动删除第二种策略:定期删除第三种策略:强制删除关于big key的清理UNLINK命令FLUSHALL/FLUSHDB命

MySQL 中的 LIMIT 语句及基本用法

《MySQL中的LIMIT语句及基本用法》LIMIT语句用于限制查询返回的行数,常用于分页查询或取部分数据,提高查询效率,:本文主要介绍MySQL中的LIMIT语句,需要的朋友可以参考下... 目录mysql 中的 LIMIT 语句1. LIMIT 语法2. LIMIT 基本用法(1) 获取前 N 行数据(

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

Python Faker库基本用法详解

《PythonFaker库基本用法详解》Faker是一个非常强大的库,适用于生成各种类型的伪随机数据,可以帮助开发者在测试、数据生成、或其他需要随机数据的场景中提高效率,本文给大家介绍PythonF... 目录安装基本用法主要功能示例代码语言和地区生成多条假数据自定义字段小结Faker 是一个 python

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

MySQL中慢SQL优化的不同方式介绍

《MySQL中慢SQL优化的不同方式介绍》慢SQL的优化,主要从两个方面考虑,SQL语句本身的优化,以及数据库设计的优化,下面小编就来给大家介绍一下有哪些方式可以优化慢SQL吧... 目录避免不必要的列分页优化索引优化JOIN 的优化排序优化UNION 优化慢 SQL 的优化,主要从两个方面考虑,SQL 语

IDEA中Git版本回退的两种实现方案

《IDEA中Git版本回退的两种实现方案》作为开发者,代码版本回退是日常高频操作,IntelliJIDEA集成了强大的Git工具链,但面对reset和revert两种核心回退方案,许多开发者仍存在选择... 目录一、版本回退前置知识二、Reset方案:整体改写历史1、IDEA图形化操作(推荐)1.1、查看提