今天我们来说说git分支有关的知识
前言
我们使用git作为我们的代码版本控制,如果一直一个人开发,可能会一直一条线式的形成一个线性提交,比如这样:
但其实一个项目一般提交的状况都很忐忑,可能长这样
还有更复杂的:
相信看到这里到你,早已眼花缭乱,分到清楚吗,这么复杂。一条线的提交有什么不好,结构清晰又简单。
这样想你就错了,为什么要使用分支,即便你是一个人工作,分支依然用的上。
比如,你已经写好一个应用了,并上线了,然后你开始写新功能,准备下次上线。
这时候老板过来说,上次上线的那个版本有个bug,需要修改。
这时候你怎么办,假设新功能写到一半,修改的地方还很多。
难受的你,把这个开发了一半新功能的项目拷贝了一份,然后把项目还原到上线到版本,然后苦逼的做修改,
修改完bug后,又慢慢把带有新功能的版本合并到刚修改过到项目中。
麻烦死了啊,想想都头大= =
这时候,我们利用分支,这个过程就会变的十分丝滑柔顺。
上线后,开始开发新功能。新建一个分支,专门做新功能的开发。
上线版本出了问题,切换到主分支,修改bug,切换到分支,继续修改开发新功能
新功能开发完毕,把分支和主分支合并,处理下合并的一些冲突,搞定!美滋滋!
这里我们使用IntelliJ IDEA作为学习环境
创建一个Java项目
打开Terminal,把这个项目变成含有git仓库管理的项目
新建一个Test类来做做实验,做一个首次提交
接下来是知识点
查看分支
在Terminal输入
git branch
目前只有一个分支master,看着不过瘾,接下来进入第二个知识点
新增分支
在Terminal中输入:
git branch 分支名字
我先创建2个分支,a1和a2
这时候我们使用知识点一的内容,对现在的分支做一个查看
我们发现现在有3个分支了,其中master分支为黄色,并且前面带有一个*号,没错,这就是我们当前所选的分支了。
切换分支
切换分支的命令是:
git checkout 分支名字
现在我们切换到了a1,查看一下当前的分支,确实来到了a1。
分支合并
现在我们先每个分支都提交一次代码
我们在提交的时候会发现,当切换到某个分支的时候,就看不到其他分支到内容了
好了,现在我们在每个分支都提交了一次内容
我们来看看提交的情况
都提交成功了,总算提交的情况不是线性的了。
接下来我们来合并一下分支,合并命令
git merge 分支名字
接下来我们将master和a1进行合并,首先切换到master分支,然后合并
这样就合并好了,不过进入Test类的时候,会看到有代码冲突
处理一下冲突的问题,让我们再来进行一下提交(提交前记得add一下)
我们来看看提交的状态
可以看出,a1已经和master合并完成了。
接下来,我们用同样的方式将a2和master进行一下合并
很完美!
删除分支
假设现在我们master和a1合并后,我们不想要a1分支了,怎么删除a1
命令:
git branch -d 分支名字
现在就只有master 和a2两个分支了
关于分支,就先讲这么多,如果要想知道更多跟branch有关的用法。
可以使用以下命令查看:
git branch -help