分支
一般来说,一个项目有两个主要的分支,开发分支和生产分支。开发分支用于迭代开发,生产分支用于项目版本的发布。
分支策略
在大型软件的开发过程中,通常有很多人参与,需要对分支进行管理。下Git分支管理可以使用Introducing GitFlow、Github flow(更多分支管理策略介绍,请查看:Git 工作流程)。
master,主干分支通常只有一个,master分支与release分支保持一致,通常在master分支上打tag,用于标记软件版本release,发布分支通常只有一个,是项目的开发的主线,用于项目的发布任务和长期维护。develop分支在每个迭代完成之后,合并到release。develop,开发分支,是开发的主要分支。feature,特性分支的命名以feature/开头,如:feature/new-page。一个开发迭代中可能有多个feature,多个feature各自完成后合并到develop分支。hotfix,紧急修复分支的命名以hotfix/开头,如:hotfix/api-error。通常从生产分支(通常为master)新建产生。bugfix,问题修复分支的命名以bugfix/开头,如:bugfix/username-not-display。通常从release分支新建产生,bugfix分支与hotfix分支的差异是,bugfix分支可以从各种分支中新建产生并用于修复问题,而hotfix一般只从生产分支新建产生。

Git Flow, from Introducing GitFlow
Git 使用规范流程
请查看《Git 使用规范流程》。
关于合并提交
只允许本地开发的时候进行“合并提交”操作,任何提交到远程的分支尽量不要进行合并提交操作。
- 合并提交的必要性?
- 为了维护主干分支(
master)的简洁,master中的每个人提交记录要简洁。 - 在开发分支中,往往的存在一个改动点多个提交的情况(一个改动点,进行多次bugfix等),这些有必要进行合并。
- 为了维护主干分支(
- 什么时候合并提交?
- 多个连续的提交可以合成一个提交时,如:多个提交为一个改动点,但是分为多次提交。
Robin on 21 June, 2017