为了在一个项目中让开发人员使用SVN,而在另一个项目中让开发人员使用Git,我试图创建一个Git和SVN之间的桥梁,结果不小心覆盖了远程存储库中的整个git提交历史记录。以下是导致错误的基本工作流程。
1. 克隆远程Git存储库 2. 按照一系列命令将Git repo导入到SVN中。 a. 我尝试了一些在stackoverflow和其他几个地方找到的方法,使用本地SVN存储库进行测试。大多数都失败了,因为它们无法适应我正在运行的Git repo。但是,在http://eikke.com/importing-a-git-tree-into-a-subversion-repository/上找到的一组步骤似乎是成功的,所以最终我使用了这些步骤。 b. 这只是部分成功。导入到SVN中的操作尝试获取所有git提交历史记录并将其作为SVN提交日志导入,但在完成约三分之二后失败了。最后的三分之一被作为单个提交提交到SVN。此外,所有提交日期都被当前日期覆盖,并且大部分作者都被覆盖。由于这是在SVN存储库而不是实际的Git存储库中,我并不太担心。 3. 让其他人从SVN检出代码,进行更改并提交。 4. 使用git svn获取更改 5. 推送更改到远程存储库。
最终结果是整个提交历史记录被覆盖为现在在SVN中的内容。因此,提交日期和作者已更改,并且提交历史记录的最后三分之一丢失了。是否有可能恢复?
如果不能,我在过程中找到了一个本地存储库的备份。它似乎具有所有原始提交历史记录。是否可能以某种方式使用此本地备份覆盖远程存储库中的提交数据?
1. 克隆远程Git存储库 2. 按照一系列命令将Git repo导入到SVN中。 a. 我尝试了一些在stackoverflow和其他几个地方找到的方法,使用本地SVN存储库进行测试。大多数都失败了,因为它们无法适应我正在运行的Git repo。但是,在http://eikke.com/importing-a-git-tree-into-a-subversion-repository/上找到的一组步骤似乎是成功的,所以最终我使用了这些步骤。 b. 这只是部分成功。导入到SVN中的操作尝试获取所有git提交历史记录并将其作为SVN提交日志导入,但在完成约三分之二后失败了。最后的三分之一被作为单个提交提交到SVN。此外,所有提交日期都被当前日期覆盖,并且大部分作者都被覆盖。由于这是在SVN存储库而不是实际的Git存储库中,我并不太担心。 3. 让其他人从SVN检出代码,进行更改并提交。 4. 使用git svn获取更改 5. 推送更改到远程存储库。
最终结果是整个提交历史记录被覆盖为现在在SVN中的内容。因此,提交日期和作者已更改,并且提交历史记录的最后三分之一丢失了。是否有可能恢复?
如果不能,我在过程中找到了一个本地存储库的备份。它似乎具有所有原始提交历史记录。是否可能以某种方式使用此本地备份覆盖远程存储库中的提交数据?