美文网首页
Pro Git 学习笔记 (六, 分支基础)

Pro Git 学习笔记 (六, 分支基础)

作者: 冯斯特罗 | 来源:发表于2017-03-08 15:57 被阅读7次

    分支简介

    git add README test.rb LICENSE
    # README test.rb LICENSE三个文件计算哈希值,将这个哈希值作为指针
    $ git commit -m 'The initial commit of my project'
    # 计算每一个子目录的校验和,保存为树对象。提交的时候包含了用户等信息和指向这棵树对象的指针
    

    现在,Git 仓库中有五个对象:三个 blob 对象(保存着文件快照)、一个树对象(记录着目录结构和 blob 对象索引)以及一个提交对象(包含着指向前述树对象的指针和所有提交信息)。

    commit-and-tree.png
    做些修改后再次提交,那么这次产生的提交对象会包含一个指向上次提交对象(父对象)的指针。
    commits-and-parents.png
    Git 的分支,其实本质上仅仅是指向提交对象的可变指针。 Git 的默认分支名字是 master。 在多次提交操作之后,你其实已经有一个指向最后那个提交对象的 master 分支。 它会在每次的提交操作中自动向前移动。
    Git 的 “master” 分支并不是一个特殊分支。 它就跟其它分支完全没有区别。 之所以几乎每一个仓库都有 master 分支,是因为 git init 命令默认创建它,并且大多数人都懒得去改动它。
    branch-and-history.png

    分支创建

    git branch testing # 创建了一个名字是testing的指针
    
    two-branches.png

    HEAD指针指向的分支就是当前所在分支


    head-to-master.png

    分支切换

    git checkout testing
    
    head-to-testing.png

    Git 的分支实质上仅是包含所指对象校验和(长度为 40 的 SHA-1 值字符串)的文件??一个分支一个文件还是所有分支一个文件.
    文件内容仅仅是一个校验和?

    相关文章

      网友评论

          本文标题:Pro Git 学习笔记 (六, 分支基础)

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