git工作流01

  • 高效的分布式工作流。配合使用便利的pull request功能,体系的讲解各种工作流的应用。

  • 工作流不是一个初级主题。背后的本质问题其实是,有效的项目流程管理和高效的开发协同约定。而不是工具的使用。

  • gitFlow工作流是经典模型。处于核心位置,体现了工作流的经验和精髓。随着项目过程的复杂化,你会感受到这个工作流的深思熟虑和威力。

  • Forking工作流是分布式协作的。给一个GitHub项目贡献你的提交。Fork就是服务端的克隆。

  • 工作流有各式各样的用法。请记住,工作流是作为方案指导而不是条例规范。在展示了各种工作流可能的用法之后,可以从不同的工作流中挑选或糅合出一个满足自己需求的工作流。

  • 集中式工作流

  • 在熟悉了SVN的基础上,可以快速的迁移到git上来。git在这种模式下有几个优势:每个开发者有自己独立的整个工程的本地拷贝。可以自由提交到本地仓库,先忽略上游的开发,合适的时候再把修改反馈上去。

  • 工作方式,以中央仓库作为所有项目修改的单点实体。所以修改都提交到master分支上。先克隆到本地,在自己的本地编辑提交修改。修改是保存到本地的。在一个方便的时间点,push到中央仓库。

  • 中央仓库代表了正式的项目。所以提交历史应该被尊重并且是稳定不变的。

  • pull --rebase. 解决冲突。继续rebase push。这样,git上的分支就是一条直线。

  • 功能分支工作流

  • 在开发过程中简单的加上功能分支,用来鼓励开发者之间的协作和简单交流。

  • 功能分支背后的核心思路是所有的功能开发应该在一个专门的分支,而不是在master分支上。可以方便多个开发者在各自的功能上开发,而不会弄乱主干代码。保证了master分支上的代码不会出问题。极大有利于集成环境

  • 功能开发隔离也让pull request工作流成为可能。pull request工作流能为每个分支发起一个讨论。在分支合并入正式项目之前,给其他开发者有表示赞同的机会。如果在功能开发中有问题卡住了,可以开一个pull request来征求意见。让团队成员之间互相评论工作变得非常方便。

  • 功能分支工作流,仍然使用中央仓库。master代表了正式项目的历史。在开始新功能前,先开一个功能分支。分支名有描述性名字。

  • master分支和功能分支之间,技术上没有区别。功能分支也可以push到中央仓库上去。可以方便备份本地的提交。

  • 一旦某个功能开发完成。不是立即合并到master上,而是push到远程的功能分支,并发起一个pull request请求合并到master上。这让其他开发者有机会去先review代码。

  • 除了code review之外,还常常用于讨论代码的常用手段。可以把pull request作为专门某个分支的讨论,这样,在开发过程中就可以进行code review。一个开发者开发功能需要帮助时,要做的就是pull request。相关的人就能看到需要帮助解决的问题。一旦pull request被接受了,接下的流程就和集中式工作流很像了。保持

你可能感兴趣的:(git工作流01)