功能分支除了可以隔离功能的开发,也使得通过 讨论变更成为可能。
一旦某个开发完成一个功能,不是立即合并到 master
,而是 push
到中央仓库的功能分支上并发起一个 Pull Request
请求去合并修改到 master
。
在修改成为主干代码前,这让其它的开发者有机会先去 Review
变更。
Code Review
是 Pull Requests
的一个重要的收益,但 Pull Requests
目的是讨论代码一个通用方式。
你可以把 Pull Requests
作为专门给某个分支的讨论。这意味着可以在更早的开发过程中就可以进行 Code Review
。
比如,一个开发者开发功能需要帮助时,要做的就是发起一个 Pull Request
,相关的人就会自动收到通知,在相关的提交旁边能看到需要帮助解决的问题。
一旦 Pull Request
被接受了,发布功能要做的就和集中式工作流就很像了。
首先,确定本地的 master
分支和上游的 master
分支是同步的。然后合并功能分支到本地 master
分支并 push
已经更新的本地 master
分支到中央仓库。
仓库管理的产品解决方案像 Bitbucket
或 Stash
,可以良好地支持 Pull Requests
。可以看看 Stash
的 Pull Requests
文档 。