1.1 Git分支简介
提交对象可包含下图所示5种信息。
注:首次提交产生的提交对象没有父对象,普通提交操作产生的提交对象有一个父对象, 而由多个分支合并产生的提交对象有多个父对象。
Git是用Blob对象来保存当前版本文件快照。
Git做提交操作时流程:
这样,Git 就可以在需要的时候重现此次保存的快照!
当做些修改再次提交时,这次产生的提交对象会包含一个指向上次提交对象(父对象)的指针!
分支本质:仅仅是指向提交对象的可变指针
1.2 master分支
分支 | 名字 | 指向对象 | 会不会自动更新 | 特殊分支 | 为何每一个仓库都有它 |
---|---|---|---|---|---|
默认分支 | master | 最后提交对象 | 会,每次提交时都会更新 | 否 | git init 命令默认创建它,并且大多数人都懒得去改动它 |
1.3 分支创建
Git仅仅只是创建一个可以移动的新指针,可在Git Bash中输入以下命令:
git branch branchName
1.4 Head指针
Head指向当前所在的本地分支,可以认为是当前分支的别名。
1.5 分支操作
1.5.1 查看各个分支所指对象
打开Git Bash输入git log --oneline --decorate
,从下图中可以看到只有一个分支head,指向以3051763开头的 提交对象,如图所示。
注:此命令必须在包含.git的本地仓库中执行
1.5.2 创建新分支
同上操作,输入 git branch branchName
即可,再次查看所有分支情况,可看到新分支testing已经创建,如图
1.5.3 切换分支
同上操作,输入git checkout branchName
,再次查看可发现testing指向以3051763开头的提交对象!如图所示
Tips:可在创建分支时同时切换过去新的分支,命令是:
git checkout -b <newBranchName>
1.5.4 分之合并
同上操作,输入git merge branchName
即可。主要用于出现紧急情况,需要创建新分支处理,然后再合并到主分支上。
1.5.5 查看所有分支
不查看其所指对象,同上,键入git branch
即可,如图可以得到一个分支列表,其中* 号所指为当前分支。
1.5.5 分支删除
同上操作,输入git branch -d branchName
即可,如图查看分之后发现的确删除了这个分支,如图所示。