将git存储库导出到svn

将git存储库导出到svn,svn,git,Svn,Git,使用git svn可以轻松地将svn存储库克隆到git中。然而,我需要反过来做。 我有一个git存储库,我想把它导入一个空的(主干、分支和标签文件夹除外)存储所有提交信息 我制作了一个svn repo的git svn克隆,拉出git主机并提交数据。然而,我在svn中唯一的承诺是说“从git合并” 我也尝试了另一种方法:克隆git repositoy并称之为git svn init,但git一直说“无法从HEAD历史中确定上游svn信息” 是否有可能从git创建svn存储库 干杯, Michael

使用git svn可以轻松地将svn存储库克隆到git中。然而,我需要反过来做。 我有一个git存储库,我想把它导入一个空的(主干、分支和标签文件夹除外)存储所有提交信息

我制作了一个svn repo的git svn克隆,拉出git主机并提交数据。然而,我在svn中唯一的承诺是说“从git合并”

我也尝试了另一种方法:克隆git repositoy并称之为git svn init,但git一直说“无法从HEAD历史中确定上游svn信息”

是否有可能从git创建svn存储库

干杯,
Michael

从另一个repo-git中提取主分支时会创建合并提交,因为没有共同的历史记录

您应该使用git pull--rebase(这将在重新创建提交时更改提交ID),然后使用dcommit


您也可以尝试以下方法:

首先使用svn签入初始版本(只需创建那些分支、标记、中继文件夹和提交),然后创建git svn克隆(
git svn-s clone svn://…

然后发出以下命令:

# create a ref to your "svn" commit
git checkout -b svn
# get all your "git" commits
git fetch $your_remote_git_repo
# create a ref to your "git" commit
git branch master FETCH_HEAD
# rebase the rest your git commits
git rebase svn master
# commit to svn!
git svn dcommit

编辑只需要选择cherry pick,因为我的快速设置git存储库只有空提交

以下是我通过svn发布git回购的方法:

svn mkdir --parents http://host/path/to/repo/{trunk,tags,branches} \
    -m "Standard layout for $project"
git svn init -s http://host/path/to/repo/
git svn fetch
git rebase trunk master
git svn dcommit
Subversion不会保留提交时间或作者身份。
如果你使用分支,上帝会帮助你。

我尝试了git pull——rebase,但它破坏了svn上游信息:#git svn clone-s#cd project#git pull——rebase git:project#git svn dcommit无法从HEAD历史中确定上游svn信息。可能存储库是空的。在/usr/lib/git core/git svn第517行。首先尝试使用svn创建一个虚拟提交我不确定我是否理解您的意思:在git svn克隆之后,我在svn中创建了一个测试提交。在git pull--rebase之后,我仍然可以git svn获取,但不能获取dcommit。我想直接导入svn,忽略历史记录。谢谢你的支持。我只是通过将git存储库拉到另一个分支中,并将所有53个提交都挑选到svn分支(master)中来实现。之后,我能够git svn dcommits,那么正确/首选的解决方案是什么?这里似乎有三种选择。在做了
重设基础之后,git报告说这两种回购现在已经严重分歧。我们应该做些什么来纠正这一点?