繁体   English   中英

如何从git-svn中恢复在存储库中放置一个不同的culduped复制文件?

[英]How to recover from git-svn putting a different cased dulplicate file in the repository?

Git-svn允许将重复的文件名(只是具有不同的大小写)添加到我们的subversion存储库中。

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

另一位开发人员从存储库中删除了错误的套件版本。 现在,当我尝试执行git-svn rebase时,我得到一个“无法分离HEAD”的消息,并且有关该文件名未被跟踪且需要被覆盖的投诉。 删除该文件会使git-svn抱怨该文件需要更新。

将存储库复制到具有区分大小写的文件系统的计算机的唯一解决方案是否执行rebase然后将其移回?

我知道git-svn还没有为Windows上的真实世界工作做好准备,但我想从它创建的这个混乱中恢复过来。

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

git config core.ignorecase是的

然后重做rebase。 它将继续进行而不会出错 - 甚至可以正确处理文件名中的大小写更改。

这不是git-svn特有的。 它可能发生在直接的'git rebase'中。

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

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

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

与您在Windows下始终解决此问题的方式相同。 您必须重命名其中一个文件,然后才能恢复另一个文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM