Git_0_初识版本控制系统

1.关于版本控制

  版本控制是用来做什么的呢?版本控制是用来记录一个或者多个文件的变化,以便将来查看特定版本变化的情况。
下面是版本控制系统的发展情况:

1.1本地版本控制系统

  本地版本控制系统通常都是使用简单的数据库来记录每次文件更新的差异本地版本控制系统中最流行的一种叫做RCS,RCS是通过在硬盘上保存补丁集(补丁指文件修改前后的差异),通过应用所有的补丁,可以计算各个版本的文件内容。

1.2集中化版本控制系统

  但是本地版本控制系统无法满足多个操作者在不同机器上协同工作。此时集中化版本控制系统就应运而生。现在常用的SVN(Subversion)就是集中化版本控制系统。
  集中化版本控制系统,都有一个单一的集中的服务器,用来保存所有文件的修订版本。协同工作的人可以通过客户端与这台机器进行连接,从而可以取出最新的文件或者提交文件更新。
  集中化的版本控制系统带来的好处就是,可以看到不同操作者都做了些什么。对于管理员来说管理一个服务器远比管理多个本地数据库还要轻巧得多。
  那么集中化的版本控制系统不好在哪里呢,由于集中化版本控制系统在客户端保存的都是最新的快照信息。一旦服务器出现故障,整个项目的变更历史就会可能出现丢失的风险。对于本地版本控制系统也一样,如果整个项目的变更历史放在一起,那么就会有丢失的风险。

1.3分布式版本控制系统

  于是乎,分布式版本控制系统就出现了。与集中化版本控制系统不同的是,分布式版本控制系统保存的不仅仅是文件的快照,还将文件或者项目的变更历史给保存在客户端了。也就是把整个项目完整地镜像下来。

这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。

2.Git简史

Git是由Linus创造的,Linus是Linux之父,具体的可以去某度一下。
Git的目标:
• 速度
• 简单的设计
• 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
• 完全分布式 • 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

3.Git是什么

3.1直接记录快照,而非差异比较

  Git与其他版本控制系统主要差别是在于Git对待数据的方法。其他大部分版本控制系统以文件变更列表的方式存储数据。这类系统把将要存储的数据看作是一组基本文件和每个文件日积日累的差异。
在这里插入图片描述

而Git是把数据看成小型文件系统的一系列快照。每当提交更新和保存项目状态的时候,git会对当时的全部文件创造一个快照并且保存这个快照的索引。如果文件没有发生变化,git不会重新存储该文件,但是会保留一个链接指向之前存储的这个文件。
在这里插入图片描述
似乎有点空间换时间的意思。

3.2近乎所有操作都是本地执行

  git的绝大多数操作都是访问本地的资源,这样就会大大减少网络延时带来的不便。因为本地有完整的项目历史,所以很多操作看上去都是一下子完成。

3.3Git保证完整性

  Git 中所有的数据在存储前都计算校验和,然后以校验和来引用。(待补充)

3.4Git一般只添加数据

通常我们对Git的操作都是添加数据,很难让git执行什么不可逆的操作。

3.5Git工作流程及状态

Git的工作流程:
1、在工作区修改文件。(我理解的工作区就是对应平时我们用IDE操作项目的地方,或者说是项目存在的地方)
2、将修改的文件选择性的暂存,暂存的文件会添加到暂存区。(当我们对某些文件进行修改了之后,会执行add操作,这个操作就是将相应的文件添加进暂存区)
3、提交更新,找到暂存区的文件,将快照永久性存储到git目录。(这一步就是平时我们的commit步骤,执行commit将暂存区中的文件提交到本地仓库中)

如果git目录保存着特定版本的文件,这时候就属于“已提交状态(committed)”,如果将文件添加进暂存区,这时候就属于“已暂存状态(staged)”,如果对文件进行修改之后还没添加进暂存区,那么这时候就属于“已修改状态(modified)”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值