分支
一般来说,一个项目有两个主要的分支,开发分支和生产分支。开发分支用于迭代开发,生产分支用于项目版本的发布。
分支策略
在大型软件的开发过程中,通常有很多人参与,需要对分支进行管理。下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