在 上一篇文章 中,我们演示了 git 在本地操作中的一些基本命令,本文将在聚焦与 git 中分支相关的操作。
当初始化一个项目时,只存在一个名为 master 的主分支。
建立分支
在项目的新版本中,计划使用 hapi 框架来代替原有的 node.js 原生 HTTP 库。为了不影响现有的项目维护,我们决定建立一个分支来管理新的开发。
使用以下命令建立一个名为 hapi 的分支:
1 | git checkout -b hapi |
以上命令相对于执行了 git branch hapi 和 git checkout hapi 两个命令
系统提示:
1 | M server.js |
执行 branch 指令查看分支:
1 | git branch |
系统显示:
1 | * [[32mhapi[[m |
可以看到,当前项目有两个分支,带 * 号的是当前分支。
在项目中使用 hapi 框架
使用 hapi 框架,修改后的代码如下:
1 | const Hapi = require('hapi') |
提交改变到分支,执行:
1 | git add server.js |
切换到 master 分支
为从 hapi 分支切换到 master 分支,执行:
1 | git checkout master |
系统显示:
1 | Switched to branch 'master' |
再检查 server.js, 可以看到 server.js 还是原来的内容。
合并 hapi 分支到 master
如果 hapi 的功能已经开发完成,准备上线了,这时会考虑合并 hapi 分支的内容到 master 中, 执行:
1 | git merge hapi |
系统提示:
1 | Updating 331b541..6cb1522 |
查看 server.js 的内容,可以看到内容已经是 hapi 中的内容了。
注意:默认使用的是 Fast-forward模式
处理冲突
现在我们在 master 分支上改变一些内容, 比如删除一个 route ‘DELETE’, 保存并提交。
切换到 hapi 分支,在 server.js 中的返回对象中加一个 code 的属性:
1 | function buildResult() { |
保存并提交。
1 | git add server.js |
1 | git add server.js |
再切换到 master 分支,执行以下命令合并 hapi 分支:
1 | git merge hapi -m "use new result struct" |
系统提示:
1 | Auto-merging server.js |
删除分支
执行以下命令删除分支:
1 | git branch -d hapi |
系统提示:
1 | Deleted branch hapi (was e630430). |
再用 git branch 命令查看,发现只有一个 master 分支了。