2010-06-15 106 views
3

我想将我的项目从本地svn仓库移至GitHub。多位开发人员正在为这个项目工作。 我在想,每个开发人员都应该有他们自己的分支,他们将在其中进行更改。当经理审查他们的工作时,他会将其合并到主分支中。 由于GitHub的私人存储库数量有限,我不希望每个开发人员都有独立的存储库。GIT仓库中每个开发人员的分支

这是个好主意吗?什么是其他的选择?

回答

4

斯科特·查孔做了与临Git的书伟大的工作。第5章讨论分布式工作流程,我认为Integration-Manager工作流程符合您所描述的内容。

Git Pro

还记得,不像SVN,每一个开发商都会有自己的,不只是一个工作拷贝,他们开发的机器上检查。以同样的方式,您可以将裸仓库克隆到内部网络上的共享服务器上,让开发人员承诺回购该仓库,然后让维护人员从内部仓库获取内容,集成更改,然后推送至github。

在该工作流程中,您可以在自己的计算机上管理裸回购,并通过普通Unix用户帐户控制权限。您不受可以像Github一样推向您的内部回购的开发人员的限制。

2

你不会需要设置不同的分支为每个开发人员(尽管你可以)在一个项目中,我们建立这样的架构:

master 
pre-prod 
qa 
devel

开发商都签了devel的分支,对推QA团队每晚都会把开发分支拿到QA中,然后回顾一下在开发硬件平台上做了什么和测试,然后在QA达到了几个星期的价值或达到一个里程碑之后从QA中提取了预产品,然后,在生产硬件上进行了“内部测试”的测试,一旦清除,它就会被推送给主人。

如果您有多个开发人员,您可能只想花时间设置gitolite(或Gitosis)和远程Git回购。让每个开发人员拥有自己的Repo,然后将您的repo作为“主要”,或者从每个开发人员回购中获得主要回购,这是理想的,并且可以与许多合作伙伴一起在大型项目中发挥作用。

但是,Github中的每个开发者分支的布局也可以很好地工作,具体取决于您有多少开发人员以及代码库的规模有多大(仅仅是因为在〜400MB或历史悠久之后的性能繁琐(大量的增量))

+0

哦,我喜欢你所说的,这就像真正的公司一样。当项目规模大时,设计它就容易多了,但我们也应该在小项目的情况下做到这一点(可能是预先准备好的) – pastjean 2010-06-15 23:06:28

+0

这种布局最适合那些习惯于VCS和SVN的团队的公司和开发人员 - 这个想法是即使Git是分散的,你仍然可以设置一个集中的存储库来跟踪和维护代码。预产品就像一个更高层次的质量保证,但它非常多余。 – 2010-06-15 23:15:38

1

当他们在他们的PC上克隆存储库时,它被称为分叉,我建议他们制作git“format-patch”并将其发送给管理器,然后通过应用程序审查修补程序它并承诺到中央储存库。

这是被称为“分散与人类看门人”的工作流程: http://doc.bazaar.canonical.com/bzr.2.1/en/user-guide/bazaar_workflows.html (这个例子是集市,但它适用于GIT非常好)

你的思考方式也不错与具有分支大家。与Gatekeeper分散化类似于Linux内核使用的内容

+0

在Linux工作流程中,Linus从提取+合并中实际抽取10个人,其余的都是补丁提交给维护者或提交给他们的请求。从管理角度修补+合并修补程序是很乏味的,尽管在Git中执行起来很容易,尤其是当它是一个开发团队而不是像开源项目时那样麻烦 – 2010-06-15 23:14:22

1

在Git中,每个开发人员都将拥有自己的存储库和默认分支,他们将在其中提交更改。

请参考 - http://www.kernel.org/pub/software/scm/git/docs/gitworkflows.html

+0

让我补充一点,每个开发人员都可以拥有自己的* remote *存储库,当您审核更改时,您可以将它们合并到主库中。它与OP的分支类似,只是到了下一个层次:) – RyanWilcox 2010-06-16 03:26:41

相关问题