Git 的分支,其实本质上仅仅是指向提交对象的可变指针。 Git 的默认分支名字是 master。 在多次提交操作之后,你其实已经有一个指向最后那个提交对象的 master 分支。 master 分支会在每次提交时自动向前移动。在 Git 中,HEAD是一个指针,指向当前所在的本地分支(译注:将 HEAD 想象为当前分支的别名)。 在本例中,你仍然在 master 分支上。 因为 git branch 命令仅仅 创建 一个新分支,并不会自动切换到新分支中去。
一丶创建分支test
-
git branch test 创建分支,但是head还是指向master。仅仅 创建 一个新分支,并不会自动切换到新分支中去。
-
git log --oneline --decorate 查看各个分支当前所指的对象
-
git checkout test 分支切换
-
辞职在test分支做修改,然后commit,结果如下
-
git checkout master 此时可切换会master,结果如图
-
此时如果做出修改,然后commit,便会发生分叉,如图:
-
查看分叉历史,包含信息提交历史,分支指向,以及项目的分支叉情况
git log --oneline --decorate --graph --all
总结:
在 Git 中,任何规模的项目都能在瞬间创建新分支。 同时,由于每次提交都会记录父对象,所以寻找恰当的合并基础(译注:即共同祖先)也是同样的简单和高效。 这些高效的特性使得 Git 鼓励开发人员频繁地创建和使用分支。