分支branch的实现原理
(1)创建分支
为什么创建新的分支?通常情况下,为了不破坏master分支,我们想在master的基础上进行功能的修改和添加,那么,需要创建新的分支idea。
实现原理:在master的基础上,创建idea分支,此时刚创建的idea分支与master分支内容一模一样,具体的图示为:此时idea指针与master指针指向相同的节点
(2)修改分支
在idea分支下,进行修改,修改后commit,具体的图示为:此时master分支不变,而idea分支变化,添加一个C3节点,idea指针指向C3节点。
(3)合并分支
为什么进行版本的合并? 通常开发完idea分支后,我们需要将代码“融合到master”上,最后运行master分支,因此需要将ideaa分支与master分支合并。
在PC上的Github客户端上实现idea分支合并到master分支的示意图如下:
没有冲突的情况下,将idea版本merge到master版本的原理:merge后的示意图如下图所示,可以看到,生成了C5节点,并让master指针指向C5。此时的C5有两个parent节点,分别是C2和C3。
分支相关的操作命令:创建、切换、合并
创建分支test:git branch test
切换分支:git checkout test
合并分支:merge
Ⅰ- 创建分支
方式1(命令创建):git brance [将要创建的新分支名]
方式2(网页创建):
- 在下面的[find or create a branch]框框中,输入没有的分支名,将会创建一个新的分支。
- 假设输入other后,按回车,就会创建other分支,此时存在两个分支master和other
Ⅱ - 本地使用创建好的other分支
- 查看项目的分支:git branch -a
- 将github远端分支拉到本地:git pull
在github远端虽然已经创建好other分支,但是却在本地查找不到,需要使用git pull将它拉到本地
执行完git pull后,再执行git branch -a,就可以看到other分支(此时有3个分支:本地master、远程master、远程other)
- 将本地分支切换到other分支:git check other(不建议使用)
说明1:切换成功后,可使用git branch -a查看
说明2:此时再修改,修改的就是branch分支
- 修改readme.md文件,上传到other分支仓库
git remote add [新仓库名] git@github.com:GuoJaw/TT.git #先为other分支创建一个远程仓库
git commit readme.md -m “添加到other分支仓库”
git pull
git push -u [新仓库名] other
Ⅲ - 合并分支
作用:当项目提交时,经常要将其他分支的代码合并到master分支
场景:假设idea分支比master分支多许多文件,如file1、file2、fileN,那么怎么将idea分支合并到master分支?
解决:使用github客户端