功能分支除了可以隔離功能的開發(fā),也使得通過 Pull Requests
討論變更成為可能。
一旦某個開發(fā)完成一個功能,不是立即合并到 master
,而是 push
到中央倉庫的功能分支上并發(fā)起一個 Pull Request
請求去合并修改到 master
。
在修改成為主干代碼前,這讓其它的開發(fā)者有機會先去 Review
變更。
Code Review
是 Pull Requests
的一個重要的收益,但 Pull Requests
目的是討論代碼一個通用方式。
你可以把 Pull Requests
作為專門給某個分支的討論。這意味著可以在更早的開發(fā)過程中就可以進行 Code Review
。
比如,一個開發(fā)者開發(fā)功能需要幫助時,要做的就是發(fā)起一個 Pull Request
,相關(guān)的人就會自動收到通知,在相關(guān)的提交旁邊能看到需要幫助解決的問題。
一旦 Pull Request
被接受了,發(fā)布功能要做的就和集中式工作流就很像了。
首先,確定本地的 master
分支和上游的 master
分支是同步的。然后合并功能分支到本地 master
分支并 push
已經(jīng)更新的本地 master
分支到中央倉庫。
倉庫管理的產(chǎn)品解決方案像 Bitbucket
或 Stash
,可以良好地支持 Pull Requests
。可以看看 Stash
的 Pull Requests
文檔 。