在进行多个并行作业时,我们会用到分支。在这类并行开发的过程中,往往同时存在多个最新代码状态。如图所示,从master分支创建feature-A 分支和fix-B 分支后,每个分支中都拥有自己的最新代码。master 分支是Git 默认创建的分支,因此基本上所有开发都是以这个分支为中心进行的。

Git的分支操作

不同分支中,可以同时进行完全不同的作业。等该分支的作业完成之后再与master 分支合并。比如feature-A 分支的作业结束后与master合并,如图 所示。

Git的分支操作

  • git branch——显示分支一览表

git branch命令可以将分支名列表显示,同时可以确认当前所在分支。

Git的分支操作

到master 分支左侧标有“*”(星号),表示这是我们当前所在的分支。也就是说,我们正在master 分支下进行开发。结果中没有显示其他分支名,表示本地仓库中只存在master 一个分支。 

  •  git checkout -b——创建、切换分支(以当前的master 分支为基础创建新的分支)

  1. 切换到feature-A分支并进行提交:git checkout -b feature-A

Git的分支操作

或者连续执行两条命令:git branch feature-A;git checkout feature-A(切换分支语句)

Git的分支操作

feature-A 分支左侧标有“*”,表示当前分支为feature-A。在这个状态下像正常开发那样修改代码、执行git add命令并进行提交的话,代码就会提交至feature-A 分支。像这样不断对一个分支(例如feature-A)进行提交的操作,称为“培育分支”。

在README.md文件中添加一行。然后进行提交。

Git的分支操作

Git的分支操作

feature-A 分支的更改不会影响到master 分支,这正是在开发中创建分支的优点。只要创建多个分支,就可以在不互相影响的情况下同时进行多个功能的开发。

2. 切换回上一个分支:git checkout - 。

  • 特性分支

特性分支顾名思义,是集中实现单一特性(主题),除此之外不进行任何作业的分支。在日常开发中,往往会创建数个特性分支,同时在此之外再保留一个随时可以发布软件的稳定分支。稳定分支的角色通常由master 分支担当,如图。

Git的分支操作

 之前我们创建了feature-A 分支,这一分支主要实现feature-A,除feature-A 的实现之外不进行任何作业。即便在开发过程中发现了BUG,也需要再创建新的分支,在新分支中进行修正。
基于特定主题的作业在特性分支中进行,主题完成后再与master 分支合并。只要保持这样一个开发流程,就能保证master 分支可以随时供人查看。这样一来,其他开发者也可以放心大胆地从master 分支创建新的特性分支。

  • 主干分支

主干分支是刚才我们讲解的特性分支的原点,同时也是合并的终点。通常人们会用master 分支作为主干分支。主干分支中并没有开发到一半的代码,可以随时供他人查看。
有时我们需要让这个主干分支总是配置在正式环境中,有时又需要用标签Tag 等创建版本信息,同时管理多个版本发布。拥有多个版本发布时,主干分支也有多个。

  • git merge——合并分支

  1. 假设feature-A 已经实现完毕,想要将它合并到主干分支master 中。首先切换到master 分支。
  2. 然后合并feature-A 分支。为了在历史记录中明确记录下本次分支合并,我们需要创建合并提交。因此,在合并时加上--no-ff参数。

Git的分支操作

  • git log --gragh——以图表形式查看分支

用git log --graph命令进行查看的话,能很清楚地看到特性分支(feature-A)提交的内容已被合并。除此以外,特性分支的创建以
及合并也都清楚明了。

Git的分支操作

 摘自《Github入门与实践》

分类:

技术点:

相关文章: