为什么fork同步很有用?

时间:2015-12-11 09:16:23

标签: git bitbucket-server

我注意到BitBucket Server(以前称为Stash)有一个名为“fork syncing”的功能,它允许在两个不同的存储库之间自动同步。我看待它的方式就像一个镜像存储库。

该功能的用处是什么?

为什么有人会使用它以及如何使用它?

3 个答案:

答案 0 :(得分:8)

要了解如何使用fork同步,首先要考虑工作流程。

如果您的组织使用的工作流程中开发人员具有对规范存储库的写入权限,则可能根本不需要分支。在这样的组织中,fork同步可能不会带来很多好处,因为你的fork,如果你有一个,可能只存在你保持你的副项目的地方,你还没准备好推到规范的分支存储库并与您的团队共享。

但是,如果您的组织将对规范存储库的写访问权限限制为一组受信任的副官,并且所有开发人员都需要在存储库的分支中执行他们的工作并打开带有更改的pull请求,那就是fork同步可以获得回报的环境。

在这样的环境中,正常的开发工作流程是三角形的:

  • 从上游存储库中获取
  • 检查所需的基本分支以进行更改并进行编码
  • 将您的工作推到您叉子的分支

此工作流程要求您积极参与两个远程存储库以进行任何非平凡的更改。 fork同步的目标是消除这种三角形工作流,并允许您针对fork进行开发,就像您可以访问规范存储库本身一样。所以这里是启用了fork同步的工作流程:

  • 从您的叉子中取货
  • 检查所需的基本分支以进行更改并进行编码
  • 将您的工作推到您叉子的分支

请注意,您永远不需要直接与上游交互,因为当新工作被推送到规范存储库时,fork中的分支会自动保持同步。现在,工作流程与您直接在规范存储库中工作时的工作流程相同。

有些人可能想要自己提取来更新他们的分叉。那也没关系; fork syncing是一个可选功能,因此您可以将其关闭。但对我来说,它是我工作流程中不可或缺的一部分。

完全披露:我是Bitbucket Server的主要开发人员,也是其fork同步功能的作者。我使用fork中的分支在Bitbucket Server上进行所有开发,并通过fork同步保持最新。

答案 1 :(得分:2)

https://confluence.atlassian.com/bitbucketserver/keeping-forks-synchronized-776639961.html

这听起来像是为了让你的主存储库的fork自动与上游保持同步。

就个人而言,这不是一个有用的功能,因为我认为执行这些"拉动"手动

答案 2 :(得分:1)

根据Atlassian文件:Keeping forks synchronized

  

Fork同步可帮助您使Bitbucket Server中的fork与上游存储库中的更改保持同步。 Bitbucket Server可以自动为您所有的分支和标记执行此操作。在fork中修改。

     

如果你在fork中修改了分支或标签,Bitbucket Server将提供同步策略。如果这意味着您的更改将丢失,Bitbucket Server将永远不会更新您的分支或标记。

     

请注意,同步是将最近的上游更改提取到fork中,而pull请求则是将更改推送回上游存储库

Github BootCamp上,您会找到fork

的定义
  

fork 是存储库的副本。分叉存储库允许您在不影响原始项目的情况下自由地尝试更改。

如果fork只是用于试验原始回购而没有任何原因的副本,而不是:Github Help

  

同步fork只会更新存储库的本地副本。