参考:
http://www.open-open.com/lib/view/open1328069889514.html
分支是git中很重要的一个概念,使用分支意味着可以从开发主线上分离开来,然后在不影响主线的同时继续工作。Git 鼓励在工作流程中频繁使用分支与合并,哪怕一天之内进行许多次都没有关系。
分支概念
在 Git 中每次提交(commit)会保存一个对象,该对象包含一个指向暂存内容快照的指针、本次提交的作者等相关附属信息、以及零个或多个指向该提交对象的父对象指针(首次提交是没有直接祖先的,普通提交有一个祖先,由两个或多个分支合并产生的提交则有多个祖先)。
把每次提交生成的对象串成一条时间线,这条时间线就是一条分支。
如上图,Git会使用master作为分支的默认名字,该master分支包含3次提交的对象,每次提交后,master指针自动向前移动。
新建分支
创建分支的时候,使用git branch命令:
git branch testing
上面的命令会在当前commit的对象上创建一个名为testing的分支,同时,Git保存一个名为HEAD的特别指针,用来指向正在工作的本地分支。运行git branch
仅仅建立一个新分支,并不会自动切换到该分支中去,因此本地工作仍在master中进行。如图所示
切换分支
要切换到其他分支,可以执行 git checkout 命令。
$ git checkout testing
这将工作区转换到新建的 testing 分支,此时 HEAD 也就指向了 testing,之后的每次提交testing会向前移动,HEAD也随着testing前移。