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

相关文章

MyBatis-Flex BaseMapper的接口基本用法小结

《MyBatis-FlexBaseMapper的接口基本用法小结》本文主要介绍了MyBatis-FlexBaseMapper的接口基本用法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具... 目录MyBATis-Flex简单介绍特性基础方法INSERT① insert② insertSelec

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav

Git提交代码详细流程及问题总结

《Git提交代码详细流程及问题总结》:本文主要介绍Git的三大分区,分别是工作区、暂存区和版本库,并详细描述了提交、推送、拉取代码和合并分支的流程,文中通过代码介绍的非常详解,需要的朋友可以参考下... 目录1.git 三大分区2.Git提交、推送、拉取代码、合并分支详细流程3.问题总结4.git push

C++中使用vector存储并遍历数据的基本步骤

《C++中使用vector存储并遍历数据的基本步骤》C++标准模板库(STL)提供了多种容器类型,包括顺序容器、关联容器、无序关联容器和容器适配器,每种容器都有其特定的用途和特性,:本文主要介绍C... 目录(1)容器及简要描述‌php顺序容器‌‌关联容器‌‌无序关联容器‌(基于哈希表):‌容器适配器‌:(

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

Git中恢复已删除分支的几种方法

《Git中恢复已删除分支的几种方法》:本文主要介绍在Git中恢复已删除分支的几种方法,包括查找提交记录、恢复分支、推送恢复的分支等步骤,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录1. 恢复本地删除的分支场景方法2. 恢复远程删除的分支场景方法3. 恢复未推送的本地删除分支场景方法4. 恢复

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

使用Python进行文件读写操作的基本方法

《使用Python进行文件读写操作的基本方法》今天的内容来介绍Python中进行文件读写操作的方法,这在学习Python时是必不可少的技术点,希望可以帮助到正在学习python的小伙伴,以下是Pyth... 目录一、文件读取:二、文件写入:三、文件追加:四、文件读写的二进制模式:五、使用 json 模块读写

Python实现NLP的完整流程介绍

《Python实现NLP的完整流程介绍》这篇文章主要为大家详细介绍了Python实现NLP的完整流程,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 编程安装和导入必要的库2. 文本数据准备3. 文本预处理3.1 小写化3.2 分词(Tokenizatio