Linux复习笔记(6)

版本控制(Git)

版本控制系统(VCSs)是一类用于追踪源代码(或其他文件、文件夹)改动的工具。这些工具可以帮助我们管理代码的修改历史;不仅如此,它还可以让协作编码变得更加方便。VCS通过一系列的快照将某个文件夹及其内容保存了起来,每个快照都包含了文件或文件夹的完整状态。同时它还维护了快照创建者的信息以及每个快照的相关信息。

Git的数据模型

快照

Git将顶级目录中的文件和文件夹作为集合,并通过一系列快照来管理其历史记录。在Git术语中,文件被称作Blob对象(数据对象),也就是一组数据。目录则被称为”树“,它将名字与Blob对象或树对象进行映射(使得目录中可以包含其他目录)。快照则是被追踪的最顶层的树。

历史记录建模:关联快照

在Git中,历史记录是一个由快照组成的有向无环图。

数据模型及其伪代码表示

一种简洁的历史模型:

type blob = array<byte>
type tree = map<string, tree | file>
type commit = struct{
	parent:array<commit>
	author:string
	message:string
	snapshot:tree
}
对象和内存寻址

Git中的对象可以是blob、树或提交

type object = blob | tree | commit

Git在储存数据时,所有对象都会基于它们的SHA-1哈希进行寻址
Blobs、树和提交都一样,它们都是对象。当它们引用其他对象时,它们并没有真正的在硬盘上保存这些对象,而是仅仅保存了它们的哈希值作为引用

引用

引用是指向提交的指针。与对象不同的是,它是可变的(引用可以被更新,指向新的提交)
例如,master引用通常会指向主分支的最新一次提交。

仓库

粗略的给出Git仓库的定义:对象和引用

暂存区

暂存区是一个和数据模型完全不相关的概念

Git的命令行接口

  • 基础
  • 分支和合并
  • 远端操作
  • 撤销

Git高级操作

杂项

  • 图形用户界面
  • Shell集成
  • 编辑器集成
  • 工作流
  • GitHub
  • Other Git 提供商
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值