1

所以我将一个 SVN 存储库迁移到 GitHub。我使用 SVN 检查了迁移的存储库,但我不小心做了一个空提交(SVN 历史记录中的 r75)。为了删除空提交,我再次检查了存储库,这次直接使用 git,并使用以下命令删除了提交:

git rebase -i HEAD~2

强制推送到 master 后,GitHub 现在正确显示只有 74 个提交,但是当我查看 SVN 日志时,我仍然可以看到提交为 r75。

zmurray@zmurray-linux:~/blah$ svn log -r 75
-------------------------------------------------- ----------------------
r75 | 扎卡里·默里 | 2013-10-11 15:05:05 -0700(2013 年 10 月 11 日星期五)| 2行

Blah blah blah,我是一个愚蠢的 SVN 提交消息,我似乎无法杀死。

-------------------------------------------------- ----------------------

我只想一劳永逸地删除这个愚蠢的信息。r75 之后没有其他提交,我只是真的想让 r74 再次成为 HEAD。没有希望了吗?帮助!

4

1 回答 1

1

这似乎是 GitHub 的 Subversion 子系统的普遍问题。

根据一些测试,它不能很好地处理使用 git (reset/rebase etc. plus git push -f) 更改历史的存储库。随后的 svn checkout + svn log 要么只显示存储库的旧历史记录,要么显示不同的中间提交,以至少在最终提交中达到相同的文件系统状态。

我联系了 GitHub,他们证实了这一点。显然它主要是这样完成的,因为 Subversion 假设历史永远不会改变,因此向 Subversion 客户端显示新的/更改的提交将使所有 Subversion 工作副本无效。

看起来这还没有记录在任何地方,尽管这可能会改变。

于 2013-10-31T22:29:58.537 回答