我正在开始一个新项目并试图决定如何组织Bitbucket中的代码。我在一家初创公司工作,我们所有人都有技术经验,但我们都没有在软件开发公司工作过。我们一直在争论在我们的bitbucket存储库中组织我们的代码的最佳方式。可以在同一个git存储库中存储两种不同类型的代码吗?
我们有一些PHP代码用于我们网站的前端,还有一些用于后端的Matlab(Matlab正在与PHP一起工作,但我认为这不是相关的)。 PHP代码专门用于网站,但许多开发人员正在对Matlab进行修改,其中一些与网站相关,另一些则与网站无关。
我们已经想出了三种方案对如何组织代码:
方案1:把Matlab和PHP在同一个存储库中。将Matlab分解为“网站”(又称稳定主分公司),“开发1”,“开发2”等。开发人员在他们自己的分支上工作,并定期将开发分支合并到网站分支中。
方案2:将Matlab和PHP放入同一个存储库。希望使用Matlab的开发人员将Matlab分解到其他存储库,然后在他们希望将其代码与网站Matlab代码合并时提交请求。
方案3:将PHP放入一个存储库,将Matlab放入另一个存储库。然后如上所述开发者分支或分支。
你的想法是什么?我们公司的DBA表示,将两种类型的代码放在同一个存储库中是一种可怕的想法(在某些情况下,它会是三种,因为我们将会减慢将Matlab代码更改为C或某种其他语言) 。另一方面,我担心如果PHP和Matlab在不同的存储库中,那么将很难跟踪哪些版本可以相互协作。
我读了一些关于堆栈溢出职位,部分地回答了我的问题:
这帮助我理解了分支和叉子的区别 - 它会出现,我认为分支仅仅需要在开发人员更多的信任,因为他们可以在未经许可或代码审查的情况下合并
git branch, fork, fetch, merge, rebase and clone, what are the differences?
这似乎很接近我的问题,但是,当我拿给数据库管理员,他说这是不是一个很好的例子,因为Java和JavaScript是如此的相似。然而,这里写的答案似乎指向我的方案1
How to organize shared code/assets across projects with git repositories
这也帮助我理解分支和Git一般较好。
http://tom.preston-werner.com/2009/05/19/the-git-parable.html
这个答案也似乎表明,即使代码不共享任何文件应在同一仓库,如果是同一项目的一部分。
关于你的最后一段,是Bitbucket“一个建立在git上的解决方案”?我不确定你的意思。 – eam55
bitbucket让你使用git或mercurial yes。现在bitbucket由Atlassian拥有(这也使[Stash](https://confluence.atlassian.com/display/STASH/Getting+started+with+Git+and+Stash))成为可能。对于职业团队,我建议避免bitbucket并选择Stash。 –