1.概念
分支:
指向最新提交对象的一个指针(HEAD),分支的本质其实就是一个提交对象。几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。
HEAD:
是一个指针 它默认指向master分支 切换分支时其实就是让HEAD指向不同的分支,每次有新的提交时 HEAD都会带着当前指向的分支 一起往前移动。
2.一些分支命令
查看整个项目的分支图
$ git log --oneline --decorate --graph --all
查看分支列表
$ git branch
查看分支指向的最新的提交
$ git branch -v
在当前提交对象上创建新的分支
$ git branch name
在指定的提交对象上创建新的分支
$ git branch name commithash
切换分支
$ git checkout name
删除空的分支 删除已经被合并的分支
$ git branch -d name
强制删除分支
$ git branch -D name
创建&切换分支
$ git checkout -b branchname
合并分支
$ git merge branchname
3.切换分支遇到的坑
在切换分支时,如果当前分支上有未提交的暂存(第一次)或者有 未暂存的修改(第一次),分支切换成功,但是这种操作可能会污染其他分支。最好的操作是在每次切换分支前,当前分支一定是已提交状态,采用命令 git status 检查一下。分支上所有的内容处于已修改状态或第二次以后的已暂存状态,是不允许切换的。