美文网首页Git简单应用
Git入门简单用法与Git对象原理

Git入门简单用法与Git对象原理

作者: 28f9a2e97e4d | 来源:发表于2016-12-13 20:44 被阅读28次

之前一直在用github,对于git以及github的图形客户端的常用方法有一定的了解。这片文章主要介绍下git的入门用法与git对象原理:

常用命令

git add //添加所有的文件到索引
git commit //向本地源码库提交,会打开默认vi编辑器写注释
git push origin master //把本地源码库push到github上
git pull origin master //从github上pull到本地源码库

新建项目举例说明

git config --global user.name "bailitusu"
git config --global user.email xxxx@qq.com

mkdir ProjTest
cd ProTest
git init
touch README
git add README
git commit -m 'test commit'
git remote add origin https://github.com/bailitusu/ProjTest.git
git push -u origin master

Git对象原理介绍

Git 是一套内容寻址文件系统。从内部来看,Git 是简单的 key-value 数据存储。它允许插入任意类型的内容,并会返回一个键值,通过该键值可以在任何时候再取出该内容。可以通过底层命令hash-object 来示范这点,传一些数据给该命令,它会将数据保存在 .git 目录并返回表示这些数据的键值。首先初使化一个 Git 仓库并确认objects 目录是空的:



Git 初始化了 objects 目录,同时在该目录下创建了 pack 和 info 子目录,但是该目录下没有其他常规文件。我们往这个 Git 数据库里存储一些文本:



参数 -w 指 hash-object 命令存储 (数据) 对象,若不指定这个参数该命令仅仅返回键值。--stdin 指定从标准输入设备 (stdin) 来读取内容,若不指定这个参数则需指定一个要存储的文件的路径。该命令输出长度为 40 个字符的校验和。这是个 SHA-1 哈希值──其值为要存储的数据加上一种头信息的校验和。现在可以查看到 Git 已经存储了数据:

可以在 objects 目录下看到一个文件。这便是 Git 存储数据内容的方式──为每份内容生成一个文件,取得该内容与头信息的 SHA-1 校验和,创建以该校验和前两个字符为名称的子目录,并以 (校验和) 剩下 38 个字符为文件命名 (保存至子目录下)。
通过 cat-file 命令可以将数据内容取回。传入 -p 参数可以让该命令输出数据内容的类型:



可以往 Git 中添加更多内容并取回,也可以直接添加文件。比方说可以对一个文件进行简单的版本控制。首先,创建一个新文件,并把文件内容存储到数据库中:

接着往该文件中写入一些新内容并再次保存:

数据库中已经将文件的两个新版本连同一开始的内容保存下来了:


再将文件恢复到第一个版本:


同样方法也可以回复到其它版本。需要记住的是几个版本的文件 SHA-1 值可能与实际的值不同,其次,存储的并不是文件名而仅仅是文件内容。这种对象类型称为 blob 。通过传递 SHA-1 值给cat-file -t 命令可以让 Git 返回任何对象的类型

PS:先介绍这些,关于git对象的存储等原理有兴趣的可以私信我。

相关文章

  • Git入门简单用法与Git对象原理

    之前一直在用github,对于git以及github的图形客户端的常用方法有一定的了解。这片文章主要介绍下git的...

  • Git book

    目录 git community book git入门 git笔记 git 用法 git安装使用手册 git命令大...

  • Git资料集

    Git这些高级用法,喜欢就拿去用 Git基础知识 Git廖雪峰 猴子都能懂的Git入门 git tag常用操作

  • **git** 使用笔记

    git 使用笔记 git原理: 文件(blob)对象,树(tree)对象,提交(commit)对象 tree对象 ...

  • 2019-10-25

    git 使用笔记 git原理: 文件(blob)对象,树(tree)对象,提交(commit)对象 tree对象 ...

  • Git学习之旅 - Basic Snapshotting(基本

    想要了解git add,commit原理的可以参考下面文章,非常有用,强烈推荐。Git 原理入门 学习Git时候,...

  • GIT--版本控制系统(二)

    上一节简单介绍了Git入门和部分指令的使用,你已学会了: 简单Git的储存原理 上传文件到版本库 文件状态,工作区...

  • GIT

    Git原理 关于版本控制 Git的优势 Git入门使用 新建项目和科隆已有项目(如图) 11 最后在GITHUB的...

  • git学习之好文推荐

    简单入门git - 简易指南 官方中文文档git-book

  • Git原理及基本命令

    最近工作经常使用Git,本文重点总结归纳一下git经常使用的命令和用法,以及对git基本原理的理解。 一、Git安...

网友评论

    本文标题:Git入门简单用法与Git对象原理

    本文链接:https://www.haomeiwen.com/subject/lisrmttx.html