git 底层原理(1/3)

查看Git内容的命令:

git cat-file -t hash值
git ls-files -s 查看Index
git reflog // 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本
tree // 查看目录结构
在这里插入图片描述

正文:

git add 生成一个Blob;(Blob实际上是对原文件进行了一个压缩)
git commit 生成一棵tree;(tree的node是对blob的引用),同时git commit会保存commit的信息

在这里插入图片描述

当前仓库有一个git config

当前用户也有一个git config

git config --global -l

如果没有本地仓库的用户名配置,则使用当前用户的

git提供了一些查看文件的方法:git cat-file -t 文件名

  • -t 代表类型
  • -p 查看内容
  • -s 查看大小

blob其实存放的就是文件的内容,大小,以及长度,然后根据这三个值生成一个hash,而文件的名字可以通过git ls-files -s查看:
在这里插入图片描述

git commit 背后的故事

参考链接
在这里插入图片描述
在这里插入图片描述

  1. 文件的状态在这里插入图片描述

  2. branch
    在这里插入图片描述
    在这里插入图片描述
    查看.git里的HEAD信息:

在这里插入图片描述

9. 分支操作

  1. git branch // 查看分支
  2. git branch dev // 创建一个dev分支
    假如从master创建的dev分支,此时HEAD指针同时指向master和dev
    在这里插入图片描述
  3. git branch -D 分支名称 // -D表示强制删除
    git branch -d 分支名称 或者 git branch --delete 分支名称 // 如果没有合并到某个分支,则提示不能删除

即使删除某个分支,该分支之前add和commit的信息也不会被删除,这些内容被称为垃圾内容了。

10. git checkout

在这里插入图片描述
在这里插入图片描述

HEAD指针理论上来说是指向某个分支的头部,但是也可以指向具体的commit hash值(因为指向某个分支的头部本质也是指向最后一次的commit);

通过git checkout hash值来指向某个commit
在这里插入图片描述
在这里插入图片描述
接下来可以在当前commit hash值的地方通过
git checkout -b newBranch来新建分支,然后在合并到主分支。
在这里插入图片描述


救命命令:
git reflog // 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

. . . . .

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值