客户端和服务器的Git分支结构

对于我的一个CS类,我和一个小组正在使用客户端/服务器架构编写应用程序.我很好奇在
Git存储库中组织项目的最佳实践是什么.我的意思是,我们是否应该像这样构建目录:

ProjectDir/
    Clients/
        Client1/
            # files...
        Client2/
            # files...
    Server/
        files....

并跟踪同一个git分支上的所有内容,或者我们是否应该为客户端和服务器创建单独的分支,例如:

在分支服务器上:

Project/
    Server/
        # files...

在分支机构客户:

Project/
    Client1/
        # files...
    Client2/
        # files...

我不知道它是否有很大的不同,但这将是我使用git进行的第一个项目,其中团队由超过几个人组成,我想确保拉动和合并尽可能简单…

最佳答案 我不确定你的背景是什么,但是我听到了来自SVN等中央VCS的人们一遍又一遍地问过同样的问题. SVN(集中式)和Git之间的分支之间的根本区别在于Git分支非常轻且易于比较.毕竟,在Git中,分支只不过是一个标记的提交(并且提交指向提交,指向提交,直到分支收敛为止).

在SVN中,通常在同一存储库中作为单独的子目录托管完全独立的项目.这些不是分支,但在SVN中,它们看起来与分支无法区分(在SVN分支中并不比子目录多).但是,您应该是understand what a branch is.分支是同一软件的两个近似副本,这些软件正在被并行修改和开发.如果您不确定自己是否有分支机构,请问自己这些分支机构是否会或可能会收敛.如果让分支收敛是没有意义的,那么它们可能根本就不是分支.

在您的客户端 – 服务器程序中,我建议您的客户端&服务器不是分支机构.相反,它们是独立的存储库.如果您重视将历史记录分开,请将它们放在单独的存储库中.如果要一起查看它们的历史记录,请将它们放在同一个存储库中,但在不同的目录下.

Git的一个有趣特性是,由于它的分布式特性,您可以将客户端和服务器维护在单独的存储库中,然后将它们作为不同的分支推送到同一个存储库中.除了疯狂地试图理解之外没有什么区别.

点赞