第二部分:工作流

这一章节是介绍如何将前面我们提到的命令运用到我们平时的工作中去,之所以规范工作流就是为了团队协作时彼此之间配合的默契,让每个人都有效地合作,使得项目井井有条地发展下去。

Git VS SVN

从SVN切换过来,我先列举几个Git的相对有优势的地方:

  • 相当于SVN集中式的服务,git分布式服务很明显快很多,用起来更流畅

  • git在本地就可以用,可以随便保存各种历史痕迹,不用担心污染服务器。svn commit就到服务器了,有时候发现commit错了或不全就得再来一遍,有review更吐血了

  • git拉branch和在branch之间切换都非常简单,可以随便折腾。svn一个branch就是一个copy,所以从这点来说git占存储空间也更少。

  • git绝对不会有被lock了不能commit的情况

  • 没网络照样可以提交,各个开发者之间不会相互影响

  • 借助分支规范我们的开发流程,提PR很方便的可以进行多人协作。

  • git有一个杀手级特性,两级提交,我们要求提交的日志需要干净,整齐,有节奏,有意义,让各个开发者的工作和项目的其他部分(修改)独立开来 —— 即自由地提交到自己的本地仓库,先完全忽略上游的开发,直到方便的时候再把修改反馈上去,同时可以很方便的进行code review

  • 借助git hook可以很方便的让我们进行自动化部署服务,借助一些其他的三方插件服务,可以拓展很多功能,比如邮件提醒,自动化测试等等。

  • SVN没有后悔药,git有一堆后悔药,可以很方便的撤销任何操作。

  • Git Workflow 规范开发和发布流程

  • 管理文档神器

  • Git周边,如辅助写书等

说到工作流,大致分了这么多种:

  • 集中式工作流

  • 功能分支工作流

  • GitFlow工作流

  • Folking工作流

  • Pull Request工作流

我们一个一个来说。