美文网首页github
Git 小课堂 001

Git 小课堂 001

作者: 我是任玉琢 | 来源:发表于2020-02-04 17:52 被阅读0次

本系列教程将会发布在微信圈子「GitHub」中,既然你已经找到了这里,那么我就直接假设基础的 Git 用法你已经掌握了(这种假设是有依据的,依据就是你已经找到了这个圈子,对 Git 不熟悉或者不了解的人不太可能看到此文),因此,本文只会介绍那些非基础用法,了解这些,可能对你以后的工作或学习会有帮助。让我们开始吧!

知其然,知其所以然会更好的理解 Git,Git 文件的存储方式,这个问题很重要,但又被大部分的的人忽略了,因此我们第一课就聊一聊 Git 的文件存储方式。

Git 文件系统是 增量式 的。这意味着你在执行 Git 命令时,一般是网 Git 的文件系统中添加文件,而不会修改或删除文件,这就意味着不太可能会丢失内容。这也就意味着一年前你写了一个 BUG,过了一年,你也抵赖不了!

Git 文件系统是 快照式 的。聊起快照式,就需要与差异式(许多其他的版本管理系统所采用的方式)进行对比。差异式,指的是每个版本存储的是与前一个版本的差异信息,那就意味着如果一个文件,十次提交中都进行了修改,就需要保存基础文件和十次差异,回看第五次,就需要计算五次,想起来都麻烦。而对比快照式,修改了文件,保存时就保存成一个新的文件,提交记录就是这些文件的索引,查看第五次提交和第一百次提交,都是拿出提交记录里索引的文件,速度是几乎没什么差别。没看懂?没关系,我们举个例子。

某一次的提交 commit 号是 f34d91(对应的是 .git/object/ 目录下的一个文件),我们用命令 git cat-file -p 查看其内容:


截屏2020-02-04下午5.42.00.png

这里我们感兴趣的是 tree(对应的也是 .git/object/ 目录下的一个文件),继续查看其内容:


截屏2020-02-04下午5.44.47.png
再对应这我们现在 git 仓库中的文件:
截屏2020-02-04下午5.45.24.png

这次应该理解上面所所的快照的含义了,所有的文件都是 blob,所有的文件夹都是 tree,每一次提交的 commit 都是一个 tree。这样,就可以高效的进行 checkout 了。在不同的分支之间,这种快照的机制也有很大的好处。

思考一下,有哪些好处呢?

相关文章

  • Git 小课堂 001

    本系列教程将会发布在微信圈子「GitHub」中,既然你已经找到了这里,那么我就直接假设基础的 Git 用法你已经掌...

  • Git 小课堂 004

    rebase——变基,就是这个可能会把事情搞得一团糟的操作。 对于变基,我只能说,需要一个配合默契的团队,你们心灵...

  • git知识点

    001 git bisect git bisect run git bisect可以用来...

  • git push 应用

    批量去操作 git add -A git commit -m "说明" git push STS001 HEAD:...

  • Git 小课堂 002——别名

    昨天我们聊了聊 Git 的文件存储,今天我们聊聊 Git 的别名。不知道你是不是熟悉别名,如果你经常使用命令行做一...

  • [Git]-001 Git简介

    1.Git介绍 1.1 Git之父 Linus Git是linux之父Linus编写的分布式版本控制系统,底层使用...

  • 课堂笔记001

  • github的使用

    配置用户名 git config --global user.name "zlwy001" 配置邮箱 git co...

  • TFH.001 - 课堂小测验:登录页面

    9月29日测试# Bruce_Zhu于2016.9.29 测试需要做一个如下图的页面 代码如下

  • 为什么我做出来的 uiscrollView 底下没有小白点?--

    ** 酷课堂201805群问答精华整理** 以上内容由@小课001爬楼整理,希望小伙伴的这些提问,对你有帮助/启发...

网友评论

    本文标题:Git 小课堂 001

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