将多个项目从 SVN 迁移到 Git



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

我决定使用 svn2git 使用第二个。我仍然困惑如何从这个开始。此外,我需要保留对项目进行的提交的完整历史记录。使用 svn2git 工具对于一个项目来说很容易做到这一点,但我该如何做到这一点。

如果要在单个横幅下收集多个不同的项目,则可能需要考虑使用:

git submodule

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

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

如果这真的是你想做的,你可以使用:

git subtree

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

最新更新