分布式工作流程
集中式,(svn),第一个人可以推送代码,第二个必须先同步到本地,再同步到服务端.
使用git,可以选择多种工作流程:
- 集中式工作流
- 共享库模式,协作者都使用同一个远程仓库
- 集中式+分支,上百人都可以很好地在单个项目上协作
- 特点是简单
- 集成管理者工作流
- fork+pr 模式,具体流程如下:
- 项目维护者推送到主仓库
- 贡献者clone此仓库
- 贡献者修改后,将变更推送到自己的公开库
- 贡献者给维护者发邮件,请求拉取自己的更新
- 维护者在自己本地仓库,拉取贡献者远程仓库,合并变更
- 维护者测试通过后,推送到主仓库
- 这种模式就是github/gitlab最常用的工作流程
- fork+pr 模式,具体流程如下:
- 司令与副官工作流
- 适用于超大项目,具体流程如下:
- 普通开发者在自己的特性分支上工作,完成后变基到master分支
- 副官将普通开发者的特性分支合并到自己的master分支中
- 司令将所有副官的master分支合并到自己的master分支中
- 司令将集成后的master分支推送到参考仓库,其他所有开发者都是以此为基础进行变基
- 这种模式,适合项目极其庞杂/需要多级别管理时,才有优势
- 适用于超大项目,具体流程如下:
- 除此之外,可能还有其他符合实际的工作流,eg:git flow.
贡献:
- git diff --check 列出可能的空行错误
- 提交的频次最好是一个问题,一次提交,不要多个问题一次提交
- 提交日志最好是:50字的简单描述 + 空行 + 详细描述,优秀项目还包括:变更动机/实现的差异
- git log --no-merges 可以看到漂亮的格式化信息