探索派生工作流程

已完成

派生工作流程基本上與其他熱門的 Git 工作流程不同。

其不會使用單一伺服器端存放庫做為「中央」程式碼基底,而是會為每位開發人員提供他們的伺服器端存放庫。

這表示每個參與者都有兩個 Git 存放庫:

  • 私人本機。
  • 公用伺服器端。

派生工作流程最常出現在公用的開放原始碼專案中。

派生工作流程的主要優點是可以整合貢獻,而不需要每個人推送至單一中央存放庫。

開發人員推送到伺服器端存放庫,而且只有專案維護者可以推送至官方存放庫。

這可讓維護人員接受來自任何開發人員的認可,而不需要為開發人員提供官方程式碼基底的寫入存取權。

派生工作流程通常會用於合併至原始專案維護人員的存放庫。

所得到的結果是一種分散式工作流程,可讓您的大型有機小組 (包括不受信任的第三方) 彈性且安全地共同作業。

這也使其成為開放原始碼專案的絕佳工作流程。

運作方式

和在其他 Git 工作流程一樣,派生工作流程的開頭是儲存在伺服器上的官方公用存放庫。

但是,新的開發人員想要開始處理專案時,並不會直接複製官方存放庫。

相反地,其會派生官方的存放庫,以在伺服器上建立其複本。

這個新複本可做為其個人公用存放庫,沒有其他開發人員可以推送至該存放庫,但可以從該存放庫提取變更 (我們稍後將會看到為何需要這麼做)。

開發人員建立了其伺服器端複本之後,會執行 git 複製,以將其複製到本機電腦上。

這可做為其私人開發環境,情況和其他工作流程一樣。

當其準備好發佈本機認可時,便可將認可推送至公用存放庫,而非官方的存放庫。

然後,他們會向主要存放庫提出提取要求,以讓專案維護者知道有更新可供整合。

如果參與的程式碼有問題,則提取要求也可當做方便的討論對話。

以下是此工作流程的逐步範例:

  • 開發人員「派生」是「官方」伺服器端存放庫。 其會建立他們的伺服器端複本。
  • 新的伺服器端複本會複製到其本機系統。
  • 「官方」存放庫的 Git 遠端路徑會新增至本機複製。
  • 系統會建立新的本機功能分支。
  • 開發人員會對新的分支進行變更。
  • 系統會為變更建立新的認可。
  • 系統會將分支推送至開發人員的伺服器端複本。
  • 開發人員會從新分支將提取要求開啟至「官方」存放庫。
  • 系統會核准提取要求進行合併,並合併到原始伺服器端存放庫。

若要將功能整合到官方程式碼基底中:

  • 維護人員會將參與者的變更提取至其本機存放庫。
  • 檢查以確定其不會中斷專案。
  • 將其合併到他們的本機主要分支中。
  • 將主要分支推送至伺服器上的官方存放庫。

參與現在屬於專案的一部分,而其他開發人員應該從官方存放庫進行提取,以同步處理其本機存放庫。

請務必了解,派生工作流程中的「官方」存放庫概念只是慣例。

建立官方存放庫的唯一要項,因此官方代表這是專案維護人員的存放庫。

派生與複製

請務必注意,「已派生」存放庫和「正在派生」並非特殊作業。

已派生存放庫是使用標準 git clone 命令所建立。 已派生存放庫通常是由 Git 服務提供者 (例如 Azure Repos) 所管理及主控的「伺服器端複製」。

沒有唯一的 Git 命令可建立已派生存放庫。

複製作業基本上是存放庫及其歷程記錄的複本。