分支是什么?
分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN。如果两个平行宇宙互不干扰,那对现在的你也没啥影响。
不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN!
分支在实际开发中的作用
在进行多人协作开发的时候,为了防止互相干扰,提高协同开发的体验,建议每个开发者都基于分支进行项目功能的开发,例如:
master 主分支
在初始化本地Git 仓库的时候,Git 默认已经帮我们创建了一个名字叫做master的分支。通常我们把这个master 分支叫做主分支。
在实际工作中,master 主分支的作用是:用来保存和记录整个项目已完成的功能代码。因此,不允许程序员直接在master 分支上修改代码,因为这样做的风险太高,容易导致整个项目崩溃。
功能分支
由于程序员不能直接在master 分支上进行功能的开发,所以就有了功能分支的概念。
功能分支指的是专门用来开发新功能的分支,它是临时从master 主分支上分叉出来的,当新功能开发且测试完毕后,最终需要合并到master 主分支上,如图所示:
查看分支列表
使用如下的命令,可以查看当前Git 仓库中所有的分支列表:
运行的结果如下所示:
注意:分支名字前面的*号表示当前所处的分支
实际项目中使用演示如下:
1、首先初始化一个仓库
git init
2、将文件添加到暂存区
git add .
3、将暂存区里的改动内容提交到本地仓库中
git commit -m ""
4、链接到远程仓库origin(名字可以随便设置,只不过一般我们叫它origin)
git remote add origin xxx.git
5、将主分支master推送到远程仓库中
git push -u origin master
效果如下:
重头戏来了,往下看
接下来创建一个新的分支
使用如下的命令,可以基于当前分支,创建一个新的分支,此时,新分支中的代码和当前分支完全一样:
图示如下:
分支的快速创建和切换
使用如下的命令,可以创建指定名称的新分支,并立即切换到新分支上:
图示如下:
注意:
“git checkout -b 分支名称” 是下面两条命令的简写形式:
①git branch 分支名称
②git checkout 分支名称
我这里创建一个叫testBranch1(相当于上图的login分支,只不过我这里起名叫testBranch1)的分支,并且切换到testBranch1分支上
git checkout -b testBranch1
将内容添加到暂存区(此时的内容跟master分支是一样的,因为你没有对此分支的内容做任何的更改)
git add .
将内容从暂存区提交到本地仓库
git commit -m "新分支提交"
将testBranch1分支推送到远程仓库origin
git push -u origin testBranch1
效果如下: