将多个项目从SVN迁移到Git
我有多个相互依赖的项目(大约20个)。目前,每个项目都有自己的SVN存储库。现在我计划迁移到Git。有两种方法: 1.为每个项目提供一个单独的Git存储库。 2.拥有一个包含所有项目的单一存储库,以便某人可以轻松地签出并进行更改将多个项目从SVN迁移到Git,git,github,svn,migration,Git,Github,Svn,Migration,我有多个相互依赖的项目(大约20个)。目前,每个项目都有自己的SVN存储库。现在我计划迁移到Git。有两种方法: 1.为每个项目提供一个单独的Git存储库。 2.拥有一个包含所有项目的单一存储库,以便某人可以轻松地签出并进行更改 我决定使用svn2git使用第二个。我仍然不知道如何从这个开始。此外,我需要保留对项目所做承诺的整个历史记录。用Snn2GIT工具对一个项目很容易做到这一点,但是我如何处理这个问题。< P>如果你想在一个横幅下收集多个不同的项目,你可能想考虑使用: git submod
我决定使用svn2git使用第二个。我仍然不知道如何从这个开始。此外,我需要保留对项目所做承诺的整个历史记录。用Snn2GIT工具对一个项目很容易做到这一点,但是我如何处理这个问题。< P>如果你想在一个横幅下收集多个不同的项目,你可能想考虑使用:
git submodule
…在一个大的Git子存储库下注册不同的Git子存储库,对应于整个项目,并存储一些额外的东西(文档、工具、glu和中间的第三个实用程序…)。除此之外,这将允许您在需要时将它们单独推送到自己的远程存储库中,并允许用户仅克隆他们需要的存储库
如果,hovewer,您计划将所有这些项目及其历史记录合并到单个应用程序中,那么这并不是一个真正的svn2git问题:您以前需要解决很多问题,首先是所有这些项目将共享一棵树(以及工作目录),并且可能存在冲突
如果这确实是您想要做的,您可以使用:
git subtree
…并将每个分支导入到公共存储库中自己的子树中,然后继续将每个分支合并到主存储库中。但我建议不要在没有真正理解它的用途和工作原理的情况下,首先考虑git子树。这并不危险,但也不意味着它不是使用git的正常方式。这是一个有趣的选择。在Subversion时代,包含多个项目的大型回购协议很常见(但您有单独的回购协议),而在Git中,每个回购协议有一个项目几乎总是更好的(但您希望所有项目都在一个回购协议中)。在走上这条路之前,请确保您了解拥有一个Git存储库的含义。嗨,Chris,我是Git新手,您认为Git子模块是一个不错的选择吗?考虑到我的需求,我可以探索一下。(在下面的第一条评论中提到)。可能是。但在这种情况下,每个子项目都有一个单独的存储库。许多人发现子模块与直觉相反。在做出决定之前,请先阅读一下。我想git子模块正是我所需要的。不管怎样,我会读更多关于这方面的内容。谢谢