使用git-svn导入先前的提交

时间:2011-05-09 14:09:01

标签: git git-svn commit

到目前为止我做了什么:

git svn init http://example.com/svn/trunk

(最新修订版为1000)

git svn fetch -r1000
git svn rebase

我的回购是最新的,我在日志中有所有提交自rev。 1000。

如何导入自修订版800以来的历史记录?
如何结帐到修订版800?

3 个答案:

答案 0 :(得分:1)

要查找特定svn修订版的提交哈希,您可以执行

git svn find-rev r800

但是,只有在git存储库中进行了subversion提交后,这才会对您有所帮助。最好的选择通常是获得包含整个颠覆历史的结账。

git svn clone http://example.com/svn/trunk

或者如果你想,所有分支机构以及主干

git svn clone -s http://example.com/svn/

如果你想继续沿着当前的路径(这将是痛苦的)你可以获得第二个git存储库,其中包含比当前更多的修订,然后使用git grafts将它们一起移植。因此,例如,如果您确定只需要修订版800,则可以执行另一个

git svn init http://example.com/svn/trunk git svn fetch -r 800

但是,如果你想要修订版600,400,900等,你将永远不得不搞乱你的本地git存储库。最好重新开始,获得一个包含所有修订版的正确git svn checkout,然后你可以自由地检查任意修订版,而不必跳过篮球。

答案 1 :(得分:1)

你可以这样做:

git svn fetch -r1000:HEAD
git svn rebase

你也可以获得这些提交。

Git svn clone: How to defer fetch of revision history

答案 2 :(得分:0)

我不知道如何解决第一个问题,但就第二个问题而言,就像找到该修订版的提交哈希标记并输入git checkout <commit tag>一样简单。