git - 如何将 repo的一部分导入现有的git repo,保留历史?

  显示原文与译文双语对照的内容
0 0

我有一个旧的SVN仓库,它包含一个子目录,我想导入到一个收费的现有库中,保留历史记录。 如何完成这一工作?

假设我有现有的SVN布局:

file:///svn
 trunk
 foo
 bar
 branches

以及以下git布局:

file:///git
 *master
 baz
 qux

我想将 svn:///file/trunk/foo 导入 git,这样我就有了以下结果:

file:///git
 *master
 foo
 baz
 qux
时间:原作者:1个回答

0 0

我发现的解决方案需要使用git子树,它作为git贡献的一部分,或者在某些情况下使用默认的git安装。

  1. 使用 git SVN克隆 SVN repo:

    git svn clone -r 1540:HEAD 
     --authors-file=authors.txt 
     https://svn.host.com/repos/trunk/foo foo
  2. 在主 repo 中,创建一个新的分支( 可选,我想),并使用git子树导入新的部分 repo:

    git checkout -b foo
    git subtree add --prefix foo/path/to/foo master
原作者:
...