2015-12-11 58 views
3

我注意到BitBucket Server以前的Stash具有一個名爲「叉同步」的功能,它允許在兩個不同的存儲庫之間自動同步。我看到它的方式就像一個鏡像庫。爲什麼fork同步很有用?

該功能的用處是什麼?

爲什麼要有人使用它,以及如何?

+0

其中一個存儲庫是隻讀的嗎? – Flosculus

+0

兩者都不可寫。 – ipinak

回答

7

要理解如何使用叉同步,首先要考慮工作流。

如果您的組織使用開發人員對規範存儲庫具有寫入權限的工作流程,則根本不需要任何分支。在這樣的組織中,叉式同步可能不會帶來很多好處,因爲如果有叉式叉,可能只存在一個地方,您可以保留您的側邊項目,但您尚未準備好將其推送到規範中的分支存儲庫並與您的團隊共享。但是,如果您的組織限制對規範存儲庫的寫入訪問權限給一組可信的中尉,並且所有開發人員都需要在存儲庫的分支中執行他們的工作,並使用他們的更改打開請求,那就是類型叉同步可以得到回報的環境。

在這樣的環境中,正常發展的工作流程是三角形:

  • 從上游儲存庫
  • 結帳的所需鹼分支爲更改抓取並將它們編碼了
  • 推工作地點到一個分叉在你的叉子

這個工作流程需要你積極地參與兩個遠程存儲庫因爲任何不平凡的變化。叉式同步的目標是消除這種三角形工作流程,並且允許您按照與您的規範存儲庫本身開發的方式完全相同的方式進行開發,如果您有權訪問。因此,這裏的叉同步工作流程啓用:

  • 從你的叉子
  • 結帳所需的基本分行更改獲取並編寫了
  • 把你的工作提高到一個分支在叉

請注意,您從不需要直接與上游進行交互,因爲新工作被推送到規範存儲庫時,叉中的分支會自動保持同步。現在,工作流程與您直接在規範存儲庫中工作的情況相同。

有些人可能想要自己提取更新他們的叉子。這也沒關係;叉同步是一個可選功能,所以你可以關閉它。但對我而言,這是我工作流程的一個組成部分。

完全公開:我是Bitbucket Server的主要開發人員,也是其叉同步功能的作者。我使用我的fork中的分支來完成我在Bitbucket Server上的所有開發,該分支通過分叉同步保持最新。

1

根據Atlassian的文檔:Keeping forks synchronized

叉同步有助於您在上游資源庫的變化讓你的叉子到位桶服務器上的更新。 Bitbucket服務器可以自動爲叉中沒有修改的所有分支和標籤執行此操作。

如果您在分支中修改了分支或標籤,Bitbucket服務器將提供同步策略。如果這意味着您的更改將會丟失,Bitbucket Server將永遠不會更新您的分支或標籤。

請注意,同步是關於將最近的上游更改拉入您的分叉,而拉請求則是關於將您的更改推回上游存儲庫

Github BootCamp你會發現fork

一個這個定義是一個存儲庫的副本。分揀存儲庫允許您在不影響原始項目的情況下自由嘗試更改。

如果叉只是使用原來的回購進行實驗,沒有任何原因,不是一個副本:Github Help

同步您的叉子只更新你的本地倉庫的副本。

+0

因此,使用自動同步分叉只是存儲庫的一面鏡子,對吧?我已閱讀鏈接的內容,但在我的腦海中,這就是它的一面鏡子。 – ipinak

+1

是的,它是一種鏡像存儲庫以保持最新狀態 – piotrek1543

相關問題