Git原理入门解析

前言: 自己第一次听到Git应该是一年前了,当时很懵,不知道它是干啥的,在网上搜索了很多文章,一直不是太明白;今天我来记录一下自己对Git的学习,如果对其他童鞋有所帮助,我荣幸之至!

在里插入图片描述

一、Git 简析

Git是什么?
Git是目前世界上最先进的分布式版本控制系统(没有之一)。最初由 Linux Torvalds (Linux 之父) 创造,于 2005 年发布。

git的历史: 很多人都知道,Linus (我给他叫小雷)在 1991 年创建了开源的 Linux,从此,Linux 系统不断发展,已经成为最大的服务器系统软件了。
小雷 虽然创建了 Linux,但 Linux 的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为 Linux 编写代码,那 Linux 的代码是如何管理的呢
事实是,在 2002 年以前,世界各地的志愿者把源代码文件通过 diff 的方式发给 Linus,然后由 小雷 本人通过手工方式合并代码!
你也许会想,为什么 Linus 不把 Linux 代码放到版本控制系统里呢?不是有 CVS、SVN 这些免费的版本控制系统吗?为啥?因为小雷觉得它也不好用呀:速度慢、必须连网,你这让网络不好的盆友怎么办,因此,小雷反对 CVS 和 SVN。有一些商用的版本控制系统,比 CVS、SVN 好用,虽然小雷不缺钱吧,但是它和小雷的价值观不一样呀(小雷要的是开源免费,你TM竟然收费)。
到了 2002 年,Linux 系统已经发展了十年了,代码库之大让小雷通过手工的方式忙不过来了,社区的弟兄们也觉得小雷的手工方式有点low,于是小雷选择了一个商业的版本控制系统 BitKeeper,BitKeeper 的东家 BitMover 公司出于人道主义精神,授权 Linux 社区免费使用这个版本控制系统。
安定团结的大好局面在 2005 年就被打破了,原因是 Linux 社区大佬太多,不免沾染了一些梁山好汉的江湖习气。开发 Samba 的 Andrew 试图破解 BitKeeper 的协议(这么干的其实也不只他一个),被 BitMover 公司发现了(监控工作做得不错!),于是 BitMover 公司怒了,要收回 Linux 社区的免费使用权(让你免费用还反过来搞我,不让你用了,除非给我道歉)。
小雷可以向 BitMover 公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的。实际情况是:Linus 花了两周时间自己用 C 写了一个分布式版本控制系统,这就是 Git!一个月之内,Linux 系统的源码已经由 Git 管理了!牛是怎么定义的呢?大家可以体会一下。
历史就是这么偶然,如果不是当年 BitMover 公司威胁 Linux 社区,可能现在我们就没有免费而超级好用的 Git 了。

版本控制系统

不管是集中式的 CVS、SVN 还是分布式的 Git 工具,实际上都是一种版本控制系统,我们可以通过他们很方便的管理我们的文件、代码等,我们可以先来畅想一下如果自己来设计这么一个系统,你会怎么设计?

摁,这不禁让我想起了之前写毕业论文的日子,我先在一个开阔的空间创建了一个文件夹用于保存我的各种版本,然后开始了我的 “毕业论文版本管理”,参考下图:
在这里插入图片描述看着挺完美的,可是有一些问题:

  • 我每一次改了啥,我忘了!
  • 当我在迭代我的超级无敌怎么样都不改的版本的时候,突然回想起好像之前版本 1.0 的第一节内容和 2.0 版本第三节的内容加起来才是最棒的,我需要打开多个文档并创建一个新的文档,仔细对比文档中的不同并为我的新文档添加新的东西,好麻烦啊…
  • 到最后文件多起来的时候,我甚至都不知道是我的 “超级无敌版” 是最终版,还是 “打死都不改版” 是最终版了;
  • 更为要命的是,我保存在我的桌面上,没有备份,意味着我本地文件手滑删除了,那我就…Gg…了。

并且可能问题还远不止于此,所以每每想起,就不自觉对小雷膜拜了起来。
Alt

二、Git 原理入门

Git有什么特点? 简单来说就是:高端大气上档次!

Git 初始化

首先,让我们来创建一个空的项目目录,并进入该目录。

$ mkdir new-project
$ cd new-project

如果我们打算对该项目进行版本管理,接下来使用 git init 命令,进行初始化。

$ git nint

初始化之后"new-project"项目下会有一个.git的文件(没有的话打开隐藏文件,不会打开百度哦!)
也可以在new-project命令窗口输入命令tree -a查看。

之后就可以对new-project下的文件进行版本控制了

$ git add <file>  //表示提交一个文件到缓存区中
$ git commit -m'提交注释'   //将缓存区的文件提交到历史库中

后续会说下命令的原理

请听下回分解……
…………………………

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值