Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一个git回购中的多个项目?_Git_Svn - Fatal编程技术网

一个git回购中的多个项目?

一个git回购中的多个项目?,git,svn,Git,Svn,我目前是一名SVN用户,正在考虑将我的项目转移到git 我使用一个SVN存储库来保存我创建的所有项目。我的结构是这样的: / /group1 /subgroup1 /project1 /branches ... /tags ... /trunk

我目前是一名SVN用户,正在考虑将我的项目转移到git

我使用一个SVN存储库来保存我创建的所有项目。我的结构是这样的:

/
    /group1
        /subgroup1
            /project1
                /branches
                    ...
                /tags
                    ...
                /trunk
                    ...
            /project2
                ...
        /subgroup2
            /project3
                ...
            /project4
                ...
    /group2
        /subgroup3
            ...
        /subgroup4
            ...
    /lib
        /lib1
        /lib2
        /lib3
如您所见,我将项目分组保存,并且
/lib
包含项目之间共享的库

我选择这种排序结构是因为:

  • 在我学习使用SVN的公司中也使用了类似的回购结构
  • 允许我将
    svnserve
    作为服务/守护进程运行在我的机器上,所有项目都托管在它上面(我不喜欢filepath方法)
  • 现在。。。切中要害。我想知道:

    如果我转到git,这种工作流将如何工作?

    具体而言:

  • 将repo树迁移到git是否简单
  • 假设每个项目都需要单独的回购*,我将如何通过
    svnserve
    git等价物为它们提供服务(最好以类似的方式分组)

  • *)我读过关于git的书,我明白这一点,但我想和有经验的人再核实一下。

    在git中,最好将每个项目放在自己的repo中,如果需要,将库放在另一个repo中,并在每个项目中用作子模块(相当于svn外部)

    这是因为在Git中,repo是一个比SVN轻得多的概念,而且更重要的是,在repo中无法单独克隆单个文件夹(不要与稀疏签出混淆),就像您能够在SVN中签出和处理单个文件夹一样。因此,如果您在一个回购协议中拥有所有项目,则必须将它们全部克隆

    使用智能http、Git守护进程和ssh服务Git repos非常简单。还有一种方法用于管理多个回购协议(包括授权和身份验证)。阅读有关提供Git回购的ProGit的链接章节-

    在分组方面,您可以根据分组结构将repo放入文件夹中,并使用智能http方法提供服务,例如,repo URL将看起来像您与SVN一起使用的URL,所有项目看起来都在分组之下等等。

    您可以将所有项目放在一个存储库中,但这真的是个坏主意,因为你总是要处理整个回购协议


    要运行git服务器,如果您只需要一个用户(您),安装git和ssh访问的服务器就足够了。例如,请参见。

    除了其他答案之外,您还可以使用链接将多个git回购链接在一起。

    我可能会去买这本书,以便更了解git。我只是想知道,让我的SVN repo作为主repo,并使用git进行本地源代码控制,对我来说是否更有意义?我倾向于在多台机器上工作,所以我认为这是有道理的。@Michal M是的,很多人都是用git svn桥接器来完成的。实际上,这样做并不是一个坏的选择