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仓库

相关推荐
只做开心事4 小时前
Git 工具的安装
git
只可远观7 小时前
Git 忽略文件配置 .gitignore
android·前端·git
ezreal_pan7 小时前
误在非开发分支上开发解决方案
git·cherry-pick
RQ_ghylls7 小时前
3. 使用idea将一个git分支的部分提交记录合并到另一个git分支
开发语言·git·idea
2501_9153743511 小时前
git 怎样把本地仓库推送到新建的远程仓库
git
How_doyou_do17 小时前
Git从入门到精通-第二章-工具配置
git
秋风&萧瑟18 小时前
ubuntu安装git及使用(本地git)
linux·git·ubuntu
Kusunoki_D2 天前
Git Bash 启动时 ssh-agent 多次尝试启动但失败
git·ssh·bash
Code_流苏2 天前
如何使用Git参与GitHub开源项目:入门全流程
git·开源·github·开源项目·入门学习