GitHub中的文件夹与仓库有何区别?

5
我是一个github.com的新用户,我正在尝试创建一个具有两个部分的移动应用程序:客户端代码和服务器端代码。客户端代码将使用Java编写Android版本,Swift编写iOS版本,C#编写Windows Phone版本。服务器端将使用PHP、HTML、Javascript和CSS编写。
我的问题是:我应该如何组织代码?我应该将服务器端代码和客户端代码放在不同的存储库中,还是只是将它们放在同一个存储库的不同文件夹中?另外,由于存在多个客户端(Android、iOS和Windows),我应该将它们放在不同的存储库或不同的文件夹中?
我已经知道这两种方法都可以实现,但我想知道标准流程以及其优缺点。

这个问题有很多可能的解决方案。saljuama提供的答案是最完整的。

在查看了github上的一些项目后,我发现一种方法是为客户端和服务器创建单独的存储库。如果您有多个客户端代码(就像我的情况),则可以使用相同的存储库但不同的makefiles。

我在https://github.com/CasparCG找到了这种做事情的方式。服务器客户端是不同的存储库。此外,客户端共享相同的src、lib和其他文件夹,但每个客户端的构建脚本是不同的。正如saljuama所指出的,当您的客户端共享相同的代码库时,这种方法是有意义的。如果您的客户端没有共享相同的代码库,请参考saljuama的答案。

这并不是唯一的可能方法。您可以按照自己的方式进行操作。

1个回答

5
这个话题相当广泛,可能基于观点,但我会尽量保持中立。根据12要素的第一原则代码库,每个应用程序都应该有自己的代码库(或存储库)。由于客户端和服务器是不同的应用程序,因此它们不应该共享同一个存储库。将两者放在同一个存储库中的一个坏处是,在使用持续集成和持续交付系统时。由于存储库推送通常触发这些过程,对其中一个方面进行更改将使CI / CD服务器处理应用程序的两个方面,而实际上并不需要这样做。我能想到的其他原因都属于基于观点的分类,因此我不会陈述它们。

更新:

回答你问题中的更新,如果不同客户端有完全相同的代码库,如果你继续阅读12因素应用程序原则、配置构建,那么一个仓库就是你应该使用的。


谢谢!正是我在寻找的东西。 - Ashish K
如果我理解正确的话,这也意味着每个客户端(Android、iOS和Windows)都应该在不同的代码库中? - Ashish K
是的,将每个客户端保留在自己的代码库中是有意义的。 - saljuama

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接