在 Forking
工作流中,开发者 push
完成的功能到他自己的仓库中,而不是共享仓库。
然后,他发起一个 Pull Request
,让项目维护者知道他的功能已经可以 Review
了。
在这个工作流,Pull Request
的通知功能非常有用, 因为项目维护者不可能知道其它开发者在他们自己的仓库添加了提交。
由于各个开发有自己的公开仓库,Pull Request
的源仓库和目标仓库不是同一个。
源仓库是开发者的公开仓库,源分支是包含了修改的分支。
如果开发者要合并修改到正式代码库中,那么目标仓库是正式仓库,目标分支是 master
分支。
Pull Request
也可以用于正式项目之外的其它开发者之间的协作。 比如,如果一个开发者和一个团队成员一起开发一个功能,他们可以发起一个 Pull Request
, 用团队成员的 Bitbucket
仓库作为目标,而不是正式项目的仓库。 然后使用相同的功能分支作为源和目标分支。
2 个开发者之间可以在 Pull Request
中讨论和开发功能。 完成开发后,他们可以发起另一个 Pull Request
,请求合并功能到正式的 master
分支。 在 Forking
工作流中,这样的灵活性让 Pull Request
成为一个强有力的协作工具。