繁体   English   中英

将SVN存储库的一部分导入现有的Git存储库

[英]Import part of a SVN repository into an existing Git repo

我有一个现有的SVN仓库,我想将其中的一部分导入到现有的Git仓库中。 任何人都可以给我一个高级概述这样做的命令吗?

摘要:

  • 我想移动现有SVN存储库中的一些子目录(但不是其余的repo)
  • 我有一个现有的Git仓库,我想将这些目录导入
  • 我想保留我移动的子目录的历史(但不是其他任何东西)

我有一种感觉这涉及到git filter-branch和一些奇怪的合并。 任何帮助,将不胜感激。

事实证明这很复杂,但这就是我所做的。

  1. 首先准备SVN存储库。 之后我打算从SVN中删除文件,因此它有助于将所有文件放在一个目录中(这也使得以后的filter-branch更容易)。

  2. 使用git: git svn clone http://path/to/svnrepo SVN repo。 这会创建一个svn repo的git版本。

  3. 使用这篇SO帖子中的想法, Detach(move)子目录到单独的Git存储库中 ,我使用filter-branch --subdirectory-filter来过滤我想要的目录,并从SVN中删除其他东西的历史记录我没有想要保持git。 您还可以使用git subtree ,一个新功能,如Howto提取git子目录并从中创建一个子模块?

  4. 然后,使用此SO帖子中的想法, 如何合并两个Git存储库? ,我将新的git repo导入到我想要添加到的父项目中。 接受的答案不正确,请查看该页面上的其他答案; 你想做一个git remote add git-proj <path>然后是git pull

  5. 最后,将更改推送到git项目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM