如何从git-svn中恢复一个不同的封装的dulplicate文件在存储库中?

Git-svn允许重复的文件名,只是不同的情况下,被添加到我们的Subversion存储库。

Windows上这意味着颠覆无法检出文件,抱怨重复。

另一名开发人员从版本库中删除了错误的版本。 现在当试图做一个git-svn重定位时,我得到一个“无法分离HEAD”的信息和一个关于被怀疑的文件名未被跟踪和需要被覆盖的投诉。 删除文件会让git-svn抱怨文件需要更新。

是唯一的解决scheme复制存储库到一个大小写敏感的文件系统的计算机做rebase然后将其移回?

我知道git-svn还没有准备好在Windows上进行真实世界的工作,但是我想从这个已经创build的混乱中恢复过来。

目前最好的答案(我不知道这是否存在,当这是最初提出):

git config core.ignorecase true

然后重做rebase。 它将继续进行,没有错误 – 甚至可以正确处理文件名的大小写变化。

这不是特定于git-svn。 它可以发生在一个“git rebase”。

我希望能帮助下一个人….

我遇到了类似的问题,与Git(单独,甚至没有git-svn)在使用不区分大小写的Mac文件系统时,更改文件名的情况变得非常困惑。 我没有找到解决方案来修复不区分大小写的文件系统的存储库,而是在一个.dmg文件中创建了一个新的区分大小写的卷,然后在该卷上使用Git。

你可能会发现一些Git的“管道”命令可能会有所帮助。 例如, git checkout-index有一个-f标志来强制覆盖现有文件(也可以使用-a与该命令,否则可能不会执行任何操作)。 管道命令通常比瓷器命令更强大(也更危险),但可能会给你灵活性,你需要解决这个问题。

你一直在Windows下解决这个问题的方式是一样的。 你必须重命名其中一个文件,然后你可以恢复另一个文件。