下载APP
登录
关闭
讲堂
算法训练营
Python 进阶训练营
企业服务
极客商城
客户端下载
兑换中心
渠道合作
推荐作者
当前播放: 11 | 小练习:数一数tree的个数
00:00 / 00:00
标清
  • 标清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看

玩转Git三剑客

共62讲 · 62课时,约600分钟
14816
免费
01 | 课程综述
免费
02 | 安装Git
免费
03 | 使用Git之前需要做的最小...
04 | 创建第一个仓库并配置loca...
05 | 通过几次commit来认识工作...
06 | 给文件重命名的简便方法
07 | 通过git log查看版本演变...
08 | gitk:通过图形界面工具来...
免费
09 | 探密.git目录
10 | commit、tree和blob三个对...
11 | 小练习:数一数tree的个数
12 | 分离头指针情况下的注意事...
13 | 进一步理解HEAD和branch
14 | 怎么删除不需要的分支?
免费
15 | 怎么修改最新commit的mess...
16 | 怎么修改老旧commit的mess...
17 | 怎样把连续的多个commit整...
18 | 怎样把间隔的几个commit整...
19 | 怎么比较暂存区和HEAD所含...
20 | 怎么比较工作区和暂存区所...
21 | 如何让暂存区恢复成和HEAD...
22 | 如何让工作区的文件恢复为...
23 | 怎样取消暂存区部分文件的...
24 | 消除最近的几次提交
25 | 看看不同提交的指定文件的...
26 | 正确删除文件的方法
免费
27 | 开发中临时加塞了紧急任务...
28 | 如何指定不需要Git管理的...
29 | 如何将Git仓库备份到本地...
30 | 注册一个GitHub账号
31 | 配置公私钥
32 | 在GitHub上创建个人仓库
33 | 把本地仓库同步到GitHub
34 | 不同人修改了不同文件如何...
35 | 不同人修改了同文件的不同...
36 | 不同人修改了同文件的同一...
37 | 同时变更了文件名和文件内...
38 | 把同一文件改成了不同的文...
39 | 禁止向集成分支执行push ...
40 | 禁止向集成分支执行变更历...
41 | GitHub为什么会火?
免费
42 | GitHub都有哪些核心功能?
43 | 怎么快速淘到感兴趣的开源...
44 | 怎样在GitHub上搭建个人博...
45 | 开源项目怎么保证代码质量...
46 | 为何需要组织类型的仓库?
47 | 创建团队的项目
48 | 怎样选择适合自己团队的工...
49 | 如何挑选合适的分支集成策...
50 | 启用issue跟踪需求和任务
51 | 如何用project管理issue?
52 | 项目内部怎么实施code re...
53 | 团队协作时如何做多分支的...
54 | 怎样保证集成的质量?
55 | 怎样把产品包发布到GitHub...
56 | 怎么给项目增加详细的指导...
免费
57 | 国内互联网企业为什么喜欢...
58 | GitLab有哪些核心的功能?
59 | GitLab上怎么做项目管理?
60 | GitLab上怎么做code revi...
61 | GitLab上怎么保证集成的质...
62 | 怎么把应用部署到AWS上?

精选留言(18)

  • 2019-02-22
    看到这里我得出一个经验,没有文件也就是没有blob对象的目录是不会被git管理的,因为git要对文件进行版本管理,所以没有必要对空目录生成对象。基于这一点,readme文件的全路径是这样:[仓库根目录]/doc/readme。那么tree的数量与全路径中“/”的数量一致。

    作者回复: 这个归纳有点意思

    7
  • 2018-12-17
    好像就是一个文件系统噢。一次 commit 创建一棵大树,commit 是 root 节点。这么看起来 git 的原理很简单。

    作者回复: 简单的才美😄

    4
  • 2018-12-15
    老师这里 我实验了一下,当提交一次,对一个文件生成一个 Blob 对象后,在对该文件进行修改提交 ,又会产生一个新的 Blob, 这里是不是对同一文件多次修改提交后,会产生多个 Blob 对象?

    如果这样的话,那会不会越来越大,有点冗余?

    作者回复: 你的理解都对,git也考虑到后面这个问题了,所以它会把松散的blob做整理,把内容相近的blob做增量存储。

    3
  • 2018-12-11
    老师讲得太棒了!深入到.git里面剖析一番,揭开了Git的神秘面纱,让我对Git的了解更进一步,也就没那么害怕他了。就像人与人之间,熟了就不怕了,老师的切入点真棒!

    作者回复: Git设计得好,让我们走近它

    2
  • 2019-03-23
    如果不往readme文件中写入信息,加入暂存区后 Git是会创建一个空的blob对象 还是不创建呢

    作者回复: 好问题。大家可以测试一下

    1
  • 2018-12-15
    刚刚看了一下具体结构, 关于每个 commit 当次提交文件的区分, 是通过比较当次 commit 和 parent 中所有不同的 tree 和 blob , 然后计算出的当次 commit 涉及的文件么?

    作者回复: 好问题,我整理清楚了再答复

    1
  • 2019-11-15
    各位同学注意了,在windows下,使用【git commit -m‘’】命令创建commit对象时,【-m】后的注释说明要使用半角双引号【""】,使用单引号会提示错误!例如:【git commit -m"Add readme"】
  • 2019-08-02
    三年前大学的时候老师说GitHub很重要,当时没有很好的学习途径去学习,就只会把本地代码上传到GitHub上。学习了老师这门课,又感受到那种获得新知识带来的快乐,以前朦胧朦胧的知识逐渐清晰了。
  • 2019-06-27
    结合数据结构来看 git的这个结构设计的很巧妙

    作者回复: +1

  • 2019-04-11
    老师请问下
    最后那个小练习,为什么中间需要有2个tree,一个tree不可以吗?多个tree的原因是什么?

    作者回复: 让blob成为基础组件,可以利用树把多个文件特定版本对应的blob进行灵活的组装。

    blob(代表文件的内容)可以充分地被复用。

  • 2019-02-12
    Doc所在的tree应该直接指向readme文件啊,怎么这里还有一个tree?
    2个tree,应该一个在commit下,一个是包含Doc那里。是不是这样啊?
  • 老师可以这样理解吧,commit相当于根节点,blob相当于叶子节点存储文件值,其他的是tree节点。

    作者回复: 就commit对应的项目所有文件的组织来说,可以这么理解

  • 2019-01-09
    打卡。老师深入讲解了好多在官网手册上看起来晦涩的知识,非常感谢!

    作者回复: 加油啊

  • 2019-01-07
    readme 为什么是一个 tree 呢?

    作者回复: 你指readme所在的那个tree只含readme对应的一个blob吧。

    1
  • 2018-12-16
    打卡
    tree、blob、和commit的关系,要是能用图说明一下就好了

    作者回复: hi,第10个视频🈶️三者的关系

  • 2018-12-16
    tree和blob 感觉有一点点像树形结构的分支结点和叶子结点 😯

    作者回复: 我也这么认为

  • 2018-12-15
    老师 tree 的产生必须 commit 吗?

    作者回复: 好问题。我们测下来的结果说明是这样的。

  • 2018-12-14
    打卡

    作者回复: ✊