和其它的 Git
工作流一样,Forking
工作流要先有一个公开的正式仓库存储在服务器上。
但一个新的开发者想要在项目上工作时,不是直接从正式仓库克隆,而是 fork
正式项目在服务器上创建一个拷贝。
这个仓库拷贝作为他个人公开仓库 —— 其它开发者不允许 push
到这个仓库,但可以 pull
到修改(后面我们很快就会看这点很重要)。
在创建了自己服务端拷贝之后,和之前的工作流一样,开发者执行 git clone
命令 克隆仓库到本地机器上,作为私有的开发环境。
要提交本地修改时,push
提交到自己公开仓库中 —— 而不是正式仓库中。
然后,给正式仓库发起一个 pull request
,让项目维护者知道有更新已经准备好可以集成了。
对于贡献的代码,pull request
也可以很方便地作为一个讨论的地方。
为了集成功能到正式代码库,维护者 pull
贡献者的变更到自己的本地仓库中,检查变更以确保不会让项目出错, 合并变更到自己本地的 master
分支, 然后 push
master
分支到服务器的正式仓库中。
到此,贡献的提交成为了项目的一部分,其它的开发者应该执行 pull
操作与正式仓库同步自己本地仓库。