参考文章git-分支简介工作原理git 的工作原理:git 版本控制是通过保存不同时间点的快照实现的。git 在提交操作时,git 会保存一个提交对象,该提交对象中会包含:用户名邮箱提交信息父指针,自然的,首次提交的对象是没有父指针的,之后提交的对象才有父指针指向树对象的指针(树对象:git 通过计算每个子目录的校验和,将其保存为树对象)目录结构blob 对象索引git 的分支,其实本质上是指向提交对象的可变指针。由于创建分支的高效性,所以,git 鼓励开发人员创建分支!原理说明首先在创建 git 项目的时候,默认会创建 master 分支!这个 master 分支正常应该是指向最新一次提交。 head | master |one <- two <- thr假设这个时候,用户做了些修改,然后提交: head | master |one <- two <- thr <- four从上述两个过程可以看出,master 分支实际就是一个指向某次提交的指针!会根据用户的提交自动向前移动指向最新一次提交。如果用户新创建了一个分支(test)呢:git branch test他的实际结果就是如下: head | master |one <- two <- thr <- four | test因为这个时候用户在 master 分支下,用户再次做出修改提交: test |one <- two <- thr <- four <- five | master | head如果这个时候用户切换到 test 分支(git checkout test),做些修改然后再次提交: head | test | <- five-for-testone <- two <- thr <- four <- five | master产生了一个新的分支!!