和其它的 Git
工作流一樣,Forking
工作流要先有一個公開的正式倉庫存儲在服務(wù)器上。
但一個新的開發(fā)者想要在項目上工作時,不是直接從正式倉庫克隆,而是 fork
正式項目在服務(wù)器上創(chuàng)建一個拷貝。
這個倉庫拷貝作為他個人公開倉庫 ——
其它開發(fā)者不允許 push
到這個倉庫,但可以 pull
到修改(后面我們很快就會看這點很重要)。
在創(chuàng)建了自己服務(wù)端拷貝之后,和之前的工作流一樣,開發(fā)者執(zhí)行 git clone
命令 克隆倉庫到本地機器上,作為私有的開發(fā)環(huán)境。
要提交本地修改時,push
提交到自己公開倉庫中 —— 而不是正式倉庫中。
然后,給正式倉庫發(fā)起一個 pull request
,讓項目維護者知道有更新已經(jīng)準備好可以集成了。
對于貢獻的代碼,pull request
也可以很方便地作為一個討論的地方。
為了集成功能到正式代碼庫,維護者 pull
貢獻者的變更到自己的本地倉庫中,檢查變更以確保不會讓項目出錯,
合并變更到自己本地的 master
分支,
然后 push
master
分支到服務(wù)器的正式倉庫中。
到此,貢獻的提交成為了項目的一部分,其它的開發(fā)者應(yīng)該執(zhí)行 pull
操作與正式倉庫同步自己本地倉庫。