gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 12:52:43 25 4
gpt4 key购买 nike

我有一个现有的 SVN 存储库,我想将其中的一部分连同历史记录导入到现有的 Git 存储库中。谁能给我一个执行此操作所需命令的高级概述?

总结:

  • 我想移动现有 SVN 存储库中的一些子目录(但不移动存储库的其余部分)
  • 我有一个现有的 Git 存储库,我想将这些目录导入到其中
  • 我只想保留我移动的子目录的历史记录(而不是其他任何内容)

我觉得这涉及 git filter-branch 和一些奇怪的 merge 。任何帮助将不胜感激。

最佳答案

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

  1. 首先准备好SVN仓库。之后我打算从 SVN 中删除文件,所以将所有文件放在一个目录中会有所帮助(这也使 filter-branch 以后更容易。)

  2. 使用 git 检查 SVN 存储库:git svn clone http://path/to/svnrepo .这将创建 svn 存储库的 git 版本。

  3. 使用这篇 SO 帖子中的想法,Detach (move) subdirectory into separate Git repository , 我用了 filter-branch --subdirectory-filter过滤我想要的目录,并从 SVN 中删除我不想保留在 git 中的其他内容的历史记录。您也可以使用 git subtree ,一项新功能,如 Howto extract a git subdirectory and make a submodule out of it?

  4. 然后,使用这篇 SO 帖子中的想法,How do you merge two Git repositories? ,我将新的 git repo 导入到我想添加它的父项目中。接受的答案不正确,请查看该页面上的其他答案;你想做一个git remote add git-proj <path>其次是 git pull .

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

关于git - 将 SVN 存储库的一部分导入现有的 Git 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14446738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com