对于我的一门计算机科学课程,我和一个小组正在使用客户端/服务器架构编写一个应用程序。我很好奇在 Git 存储库中组织项目的最佳实践是什么。我的意思是,我们是否应该像这样构建目录:
ProjectDir/
Clients/
Client1/
# files...
Client2/
# files...
Server/
files....
并跟踪同一个 git 分支上的所有内容,或者我们是否应该为客户端和服务器创建单独的分支,例如:
在树枝上Server
:
Project/
Server/
# files...
在树枝上Clients
:
Project/
Client1/
# files...
Client2/
# files...
我不知道这是否有很大的不同,但这将是我使用 git 进行的第一个项目,其中团队由几个人组成,我想确保拉取和合并尽可能简单...
我不确定你的背景是什么,但我听到来自 SVN 等中央 VCS 的人一遍又一遍地问同样的(类似)问题。 SVN(集中式)和 Git 分支之间的根本区别在于,相比之下,Git 分支非常轻量且容易。毕竟,在 Git 中,分支只不过是一个带标签的提交(并且该提交指向一个提交,该提交又指向一个提交,一直向下直到分支汇聚)。
在 SVN 中,通常将完全独立的项目作为单独的子目录托管在同一存储库中。这些不是分支,但在 SVN 中它们看起来与分支没有什么区别(在 SVN 中分支只不过是子目录)。但是,您应该了解什么是分支 http://en.wikipedia.org/wiki/Branch_%28software%29。分支是同一软件的两个近似副本,它们正在并行修改和开发。如果您不确定是否有分支,请问问自己这些分支是否会或可能会聚合。如果让分支聚合永远没有意义,那么它们可能根本就不是分支。
在您的客户端-服务器程序中,我建议您的客户端和服务器不是分支。相反,它们是单独的存储库。如果您希望单独查看它们的历史记录,请将它们放在单独的存储库中。如果您想一起查看它们的历史记录,请将它们放在同一个存储库中但位于不同的目录下。
Git 的一个有趣的功能是,由于它的分布式特性,您可以在单独的存储库中维护客户端和服务器,然后将它们作为不同的分支推送到同一存储库中。除了疯狂地试图理解之外,没有什么区别。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)