Git从入门到精通-第一章-基础概念

目录

为什么要版本控制?

版本控制系统

本地版本控制系统

集中化的版本控制系统

分布式版本控制系统

Git是什么?

直接记录快照

几乎所有操作都是本地执行

保证完整性

Git一般只添加数据

三种状态!

Git的三种状态

Git的三个阶段

Git基本工作流程


注:本文图文以proGit为基础

为什么要版本控制?

为了能够及时回溯项目以前的版本

版本控制系统

本地版本控制系统

RCS:保存布丁,也就是各版本修订前后的变化(有点像差分)

集中化的版本控制系统

多个客户端连接同一个服务器,取出文件或提交更新

好处是更容易管理,坏处就是这个服务器得稳定,得通过异地容灾等方法降低风险

分布式版本控制系统

于是乎,分布式的就诞生了,客户端不再是提取当前最新版本的文件快照,而是将整个代码仓库完整的镜像下来,包括历史记录,那么即使服务器故障,我们仍可以通过镜像进行复刻

Git是什么?

直接记录快照

其他大部分系统以文件变更列表的方式存储信息,可以将这些信息看作是一组基本文件和每个文件随时间逐步累积的差异(基于差异 delta-based )

然而Git是将数据看作是对小型文件的快照,每当提交更新或保存项目状态的时候,会为全部文件创建一个快照并保存这个快照的索引 。如果某个文件没有修改,那么不会重新存储 ,而是保留一个链接指向之前存储的文件

Git更像是一个小型的文件系统,提供了许多以此为基础构建的超强工具

几乎所有操作都是本地执行

在Git中大多数操作只需要访问本地文件和资源,因为在本地磁盘上就有项目的完整历史,无须从远程服务器拉回。意味着你可以随心所欲地在本地进行操作,然后等有条件了再上传服务器

保证完整性

Git中所有数据在存储前都会计算校验和,然后以校验和来引用。这意味这无法在Git不知情的情况下更改任何文件或者目录。如果你在传输中丢失信息或损坏文件,Git就能发现

Git计算校验和的机制叫做SHA-1 hash。Git数据库中保存的信息都是以文件内容的哈希值作为索引

Git一般只添加数据

一旦你提交快照到Git中,就很难丢失数据,那么我们也就没有必要担心误删了数据

三种状态!

Git的三种状态

committed 已提交 修改了文件,但还没有保存到数据库中

modified 已修改 对已修改文件的当前版本做了标记,使之包含在下次提交的快照

staged. 已暂存 数据安全地保存在本地数据库中

Git的三个阶段

工作区 对项目某个版本独立提取出来的内容。这些文件放在磁盘上供客户端使用或修改

暂存区 暂存区是个文件,保存下次将要提交的文件列表信息,也就是"索引"

Git仓库 保存项目的原数据和对象数据库,供计算机克隆仓库

Git基本工作流程

1.在工作区修改文件

2.将下次要提交的更改选择性暂存,只会讲更改部分添加到暂存区

3.提交更新,将暂存区文件快照永久性存储到Git仓库

相关推荐
许心月42 分钟前
Git#revert
git
军军3604 小时前
Git大型仓库的局部开发:分步克隆 + 指定目录拉取
前端·git
间彧5 小时前
Git命令速查表
git
用户2519162427117 小时前
Git原理分析
前端·javascript·git
lsp-077 小时前
Git版本控制与协作
git
百思可瑞教育20 小时前
Git 对象存储:理解底层原理,实现高效排错与存储优化
大数据·git·elasticsearch·搜索引擎
Bitup_bitwin1 天前
Git智能合并机制深度解析
git
TeleostNaCl1 天前
OpenWrt 编译 | 一种使用 git submodule 方式实现一键更新多个外部软件包
网络·经验分享·git·智能路由器
Cosmoshhhyyy2 天前
mac环境下安装git并配置密钥等
git·macos
yuwei0212 天前
git大全解
git