Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.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
将多个项目从SVN迁移到Git_Git_Github_Svn_Migration - Fatal编程技术网

将多个项目从SVN迁移到Git

将多个项目从SVN迁移到Git,git,github,svn,migration,Git,Github,Svn,Migration,我有多个相互依赖的项目(大约20个)。目前,每个项目都有自己的SVN存储库。现在我计划迁移到Git。有两种方法: 1.为每个项目提供一个单独的Git存储库。 2.拥有一个包含所有项目的单一存储库,以便某人可以轻松地签出并进行更改 我决定使用svn2git使用第二个。我仍然不知道如何从这个开始。此外,我需要保留对项目所做承诺的整个历史记录。用Snn2GIT工具对一个项目很容易做到这一点,但是我如何处理这个问题。< P>如果你想在一个横幅下收集多个不同的项目,你可能想考虑使用: git submod

我有多个相互依赖的项目(大约20个)。目前,每个项目都有自己的SVN存储库。现在我计划迁移到Git。有两种方法: 1.为每个项目提供一个单独的Git存储库。 2.拥有一个包含所有项目的单一存储库,以便某人可以轻松地签出并进行更改


我决定使用svn2git使用第二个。我仍然不知道如何从这个开始。此外,我需要保留对项目所做承诺的整个历史记录。用Snn2GIT工具对一个项目很容易做到这一点,但是我如何处理这个问题。

< P>如果你想在一个横幅下收集多个不同的项目,你可能想考虑使用:

git submodule
…在一个大的Git子存储库下注册不同的Git子存储库,对应于整个项目,并存储一些额外的东西(文档、工具、glu和中间的第三个实用程序…)。除此之外,这将允许您在需要时将它们单独推送到自己的远程存储库中,并允许用户仅克隆他们需要的存储库

如果,hovewer,您计划将所有这些项目及其历史记录合并到单个应用程序中,那么这并不是一个真正的svn2git问题:您以前需要解决很多问题,首先是所有这些项目将共享一棵树(以及工作目录),并且可能存在冲突

如果这确实是您想要做的,您可以使用:

git subtree

…并将每个分支导入到公共存储库中自己的子树中,然后继续将每个分支合并到主存储库中。但我建议不要在没有真正理解它的用途和工作原理的情况下,首先考虑git子树。这并不危险,但也不意味着它不是使用git的正常方式。

这是一个有趣的选择。在Subversion时代,包含多个项目的大型回购协议很常见(但您有单独的回购协议),而在Git中,每个回购协议有一个项目几乎总是更好的(但您希望所有项目都在一个回购协议中)。在走上这条路之前,请确保您了解拥有一个Git存储库的含义。嗨,Chris,我是Git新手,您认为Git子模块是一个不错的选择吗?考虑到我的需求,我可以探索一下。(在下面的第一条评论中提到)。可能是。但在这种情况下,每个子项目都有一个单独的存储库。许多人发现子模块与直觉相反。在做出决定之前,请先阅读一下。我想git子模块正是我所需要的。不管怎样,我会读更多关于这方面的内容。谢谢