Git分支图解理解其概念HEAD,git branch name,git checkout name,git log --oneline --decorate

Git 的分支,其实本质上仅仅是指向提交对象的可变指针。 Git 的默认分支名字是 master。 在多次提交操作之后,你其实已经有一个指向最后那个提交对象的 master 分支。 master 分支会在每次提交时自动向前移动。在 Git 中,HEAD是一个指针,指向当前所在的本地分支(译注:将 HEAD 想象为当前分支的别名)。 在本例中,你仍然在 master 分支上。 因为 git branch 命令仅仅 创建 一个新分支,并不会自动切换到新分支中去。

一丶创建分支test

  • git branch test 创建分支,但是head还是指向master。仅仅 创建 一个新分支,并不会自动切换到新分支中去。
    Git分支图解理解其概念HEAD,git branch name,git checkout name,git log --oneline --decorate_第1张图片

  • git log --oneline --decorate 查看各个分支当前所指的对象

  • git checkout test 分支切换
    Git分支图解理解其概念HEAD,git branch name,git checkout name,git log --oneline --decorate_第2张图片

  • 辞职在test分支做修改,然后commit,结果如下
    Git分支图解理解其概念HEAD,git branch name,git checkout name,git log --oneline --decorate_第3张图片

  • git checkout master 此时可切换会master,结果如图
    Git分支图解理解其概念HEAD,git branch name,git checkout name,git log --oneline --decorate_第4张图片

  • 此时如果做出修改,然后commit,便会发生分叉,如图:
    Git分支图解理解其概念HEAD,git branch name,git checkout name,git log --oneline --decorate_第5张图片

  • 查看分叉历史,包含信息提交历史,分支指向,以及项目的分支叉情况

    git log --oneline --decorate --graph --all
    

总结:

在 Git 中,任何规模的项目都能在瞬间创建新分支。 同时,由于每次提交都会记录父对象,所以寻找恰当的合并基础(译注:即共同祖先)也是同样的简单和高效。 这些高效的特性使得 Git 鼓励开发人员频繁地创建和使用分支。

你可能感兴趣的:(GIT,git,github)