我正在开始一个新项目并试图决定如何在Bitbucket中组织代码.我在一家初创公司工作,我们所有人都有技术经验,但我们都没有在软件开发公司工作过.我们一直在争论在bitbucket存储库中组织代码的最佳方法.
我们的网站前端有一些PHP代码,后端有一些Matlab(Matlab正在编译与PHP一起工作,但我不认为这是相关的).PHP代码专门用于网站,但Matlab是由许多开发人员进行更改,一些与网站相关而另一些则没有.
我们已经提出了三种方案来组织代码:
方案1:将Matlab和PHP放在同一个存储库中.将Matlab分为"网站"(又名稳定的主分支),"Develop1","Develop2"等.开发人员在他们自己的分支上工作,并定期将Develop分支合并到网站分支.
方案2:将Matlab和PHP放在同一个存储库中.想要使用Matlab的开发人员将Matlab分成其他存储库,然后在他们希望将代码与网站Matlab代码合并时提交拉取请求.
方案3:将PHP放在一个存储库中,将Matlab放在另一个存储库中.然后开发人员如上所述分叉或分支.
你的想法是什么?我们公司的DBA说,将两种类型的代码放在同一个存储库中是一个糟糕的主意(在某些时候,它将是三个,因为我们将减慢将Matlab代码更改为C或其他语言) .另一方面,我担心如果PHP和Matlab位于不同的存储库中,很难跟踪哪些版本相互协同工作.
我读了很多关于堆栈溢出的帖子,部分回答了我的问题:
这有助于我理解分支和分支之间的区别 - 在我看来,分支只需要更多信任开发人员,因为他们可以在未经许可或代码审查的情况下合并.
git branch,fork,fetch,merge,rebase和clone,有什么区别?
这似乎与我的问题非常接近,虽然当我向DBA展示时,他说这不是一个很好的例子,因为Java和Javascript非常相似.但是,这里写的答案似乎指向我的方案1.
这也有助于我更好地理解分支和git.
http://tom.preston-werner.com/2009/05/19/the-git-parable.html
这个答案似乎也表明,即使是不共享任何文件的代码,如果它是同一个项目的一部分,也应该在同一个存储库中.