玩转Git三剑客 —— 第一章:Git 基础(下)(草稿)

写在前面:吃草学习总结,侵删,谢谢~

· 11 | 练习:数 tree 的个数:

    · Question:新建的 Git 仓库,有且仅有 1 个 commit,仅包含 /doc/readme,有多少个 tree 和 blob?

    · Answer:两个 tree 和一个 blob。

    · 准备工作的注意点:

        · 在目录中新建一个空文件夹,git 是不理会的,在里面添加文件后,git 才会管控

        · 新建一个文件并写入内容的命令:echo "CONTENT" > FILE_NAME

        · 查看文件夹下有无文件的命令:find .git/objects -type f,f 表示文件(file)

        · 文件在工作区且还未添加至暂存区时,git 不会创建对象,但是加入至暂存区,就会创建一个 blob 对象

            

        · 提交后,会生成四个对象(.git/objects 路径下生成四个文件),一个 commit,两个 tree,一个 blob

        · 可以根据输出的哈希值查看对象的结构

        · 记得哈希值的形成策略,去掉 /

                玩转Git三剑客 —— 第一章:Git 基础(下)(草稿)_第1张图片

· 12 | 分离头指针的注意事项:

    · 分离头指针命令:git checkout COMMIT

    · 分离过后继续产生 commit,不会影响其它分支

    · 本质:工作在没有分支的情况下,由于产生的 commit 不和任何分支挂钩,所以一旦切换到某分支,分离时产生的 commit 将不会被保存

    · 使用场景:做一些尝试性的变更

        玩转Git三剑客 —— 第一章:Git 基础(下)(草稿)_第2张图片

    · vi 是修改了 style.css 文件

    · git commit -am'DESCRIPTIONS’ 不推荐使用,因为直接跳过了暂存区

    · 目前的 HEAD 没有指向任何一个分支,只是从一个 commit 分离了头指针

    · 将分支切换至 master(或其它分支)时会有提示,若不关联(新建)分支就会丢失这个 commit(一次或多次 commit)

    · gitk 中也确实看不到本例中 328c1ee 这次 commit

            玩转Git三剑客 —— 第一章:Git 基础(下)(草稿)_第3张图片

    · 不与分支或 tag 绑定的 commit,Git 认为不重要,会被删除

    · 此时新建一个分支,即将 commit 与分支绑定,gitk 中则会保留并显示此 commit

            玩转Git三剑客 —— 第一章:Git 基础(下)(草稿)_第4张图片

· 13 | 进一步理解 HEAD 和 branch:

    · 一开始 HEAD 指向 master 分支,新建一个 fix_readme 分支后,HEAD 指向了新的分支,.git/HEAD 中也引用到 fix_readme 分支上

    · git checkout -b NEW_BRANCH_NAME BRANCH_NAME/COMMIT(新建一个分支,可以基于某个分支,也可以基于某个 commit)

    · gitk 中也能看出(黄点表示当前 HEAD 指向的地方)

            玩转Git三剑客 —— 第一章:Git 基础(下)(草稿)_第5张图片

    · HEAD (指向的分支)最终还是会落脚于某个 commit:

        玩转Git三剑客 —— 第一章:Git 基础(下)(草稿)_第6张图片

    · HEAD 的一些小技巧:

        · 比较差异的命令:git diff COMMIT_ONE_HASH COMMIT_TWO_HASH

        · HEAD 可表示当前 HEAD 指向的 commit,HEAD~1,HEAD^,HEAD^1 都可用以表示 HEAD 的 Parent

        · HEAD 的 Parent 的 Parent 可以使用 HEAD^^,HEAD~2,HEAD~1^1,HEAD^1~1 表示

        · ^ 与 ~ 都表示父节点,跟随数字时,^2 表示第二个父节点,~2 表示父节点的父节点(个人认为区别不大)

            玩转Git三剑客 —— 第一章:Git 基础(下)(草稿)_第7张图片    玩转Git三剑客 —— 第一章:Git 基础(下)(草稿)_第8张图片

你可能感兴趣的:(Git,极客时间,git)