github团队工作流程-分叉与否?


21

我们是一个由Web开发人员组成的小组,目前正在使用Subversion,但是很快我们将切换到github。

我正在查看不同类型的github工作流,但我们不确定github中针对每个开发人员的整个派生概念是否对我们来说是一个好主意。

如果我们使用fork,我知道每个开发人员都会拥有自己的私有远程和本地存储库。我担心这将使变更集变得困难而又过于复杂。另外,我最大的担心是,它将迫使每个开发人员拥有2个远程控制器:origin(远程分支)和上游(用于“同步”来自主存储库的更改)。不知道这是做事的简便方法。

这类似于此处说明的工作流程:https : //github.com/usm-data-analysis/usm-data-analysis.github.com/wiki/Git-workflow

如果我们不使用派生,则可以使用中央存储库为正在处理的每个任务创建一个分支,然后将它们合并到同一存储库中的development分支中,这样可以很好地解决问题。这意味着我们将无法限制分支的合并,并且在中央存储库中有很多分支可能有些混乱。

尝试过两种工作流程的团队有何建议?


3
叉还是不叉
Lukasz Madon

Answers:


9

我认为您对分叉的恐惧来自于SVN的合并效果不佳,这不是因为合并造成麻烦,而是合并。

潜水-您会发现它真的很棒!您不需要过度分叉(不必为每个文件中的每个更改进行分叉),但是您可以分叉功能,然后再合并回去。

将GitHub视为在源代码管理的许多核心概念上值得改进的几个版本。

如果您不愿意分叉,“稳定”分支和“主动开发”分支的概念也涵盖了许多此类问题。:P


19
如果将“ fork”的所有实例替换为“ branch”,则表示我同意。但是,问题是关于派生和处理两个(或多个)远程存储库。
David Harkness,2012年

8

我们已经尝试了这两种方法,并且使用了非常熟悉svn的开发人员。而且,如果您是一堆开发人员,他们已经一起工作并且彼此拥有提交权限,那么您可能会发现,将单个集中存储库保存在git并将您全部添加为该存储库的协作者可能会更容易。

我们仍然偶尔会进行私用分叉,但这通常是针对异乎寻常的更改或1人测试,而其他人通常对此并不感兴趣,但是我们希望无论如何都可以远程存储。

我将从一个单一的中央仓库开始,然后与git一起工作一段时间。也许私人叉子会在您身上长大,也许不会。都可以。


6

在git中,fork实际上只是另一个分支。使用针对每个开发人员的fork工作流程,您可以有效地要求每个开发人员都有一个公共(远程)分支来跟踪他们的开发更改。这有助于能够在开发人员之间直接(对等)协作。无论如何,您都必须将每个开发人员的更改合并到中央存储库中,因此我认为这不会增加太多开销。


3

对于由2-3个开发人员组成的小型团队,可以在存储库上使用分支来管理修补程序和功能。问题是,当您拥有更多的开发人员以及正在开发的更多功能和修复程序时。

在这种情况下,您在Github的主仓库将有数百个分支;有些会变得古老,被遗忘和融合。

您还会遇到协作方面的问题,即有人在仓库中强行推动共享分支。这意味着没有人可以在那个分支上进行适当的协作,因为强制推翻是对历史的重写。

分叉存储库可以更轻松地跟踪哪些分支正在进行中,哪些分支运行良好。它可以使主存储库保持清洁。

但是,您的测试基础架构可能依赖于使用主存储库,因此除非您已将分支机构推到上游,否则测试分叉存储库中的更改可能会更加困难。弄清楚何时最好使用分支和分支是很困难的,但是通常,当团队有4个以上的人员并且有很多修复程序和功能时,分支是最好的选择。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.