【发布时间】:2011-05-24 04:55:47
【问题描述】:
为了在 Git 和 SVN 之间建立一座桥梁,让一个项目的开发人员可以使用 SVN,而另一个项目的开发人员可以使用 Git,我无意中覆盖了远程存储库中的整个 git 提交历史记录。这是导致错误的基本工作流程。
- 克隆了远程 Git 存储库
-
按照一系列命令将 Git 存储库导入 SVN。
一个。我尝试了通过 stackoverflow 和其他几个位置找到的各种方法,使用本地 SVN 存储库作为测试。鉴于我运行它们的 Git 存储库,它们中的大多数都失败了。但是,在http://eikke.com/importing-a-git-tree-into-a-subversion-repository/ 找到的这组步骤似乎是成功的,所以我最终使用了这些步骤。
b.这只是半成功。导入 SVN 尝试获取所有 git 提交历史并将其作为 SVN 提交日志导入,但在大约 2/3 时失败。最后三分之一作为单个提交提交到 SVN。此外,所有提交日期都被当前日期覆盖,并且大部分作者都被覆盖了。鉴于这是在 SVN 存储库中,而不是实际的 Git 存储库中,我并不太担心。
- 有人从 SVN 检查代码,进行更改并提交。
- 使用 git svn 获取更改
- 已将更改推送到远程存储库。
最终结果是整个提交历史都被现在 SVN 中的内容覆盖了。因此,提交日期和作者发生了变化,最后 1/3 的提交历史丢失了。有可能恢复吗?
如果没有,我找到了本地存储库的备份,该备份是我在过程中间的某个地方创建的。它似乎具有所有原始提交历史记录。是否有可能用我在这个本地备份中的内容以某种方式覆盖远程存储库上的提交数据?
【问题讨论】: