我有一个明显的印象,我的Git repo以某种方式被破坏了.
这是我正在做的序列:
git clone [remote的克隆字符串]
这创建了一个文件"App/android/AndroidManifest.xml",以及其他许多文件.
git mv App/android/AndroidManifest.xml App/android/AndroidManifestTemplate.xml
这给出了错误消息"致命:不受版本控制,源= App/And ......"
最初我认为这可能是一个gitignore的事情,但那也不是.我试过git fsck,它没有报告任何内容.
有关如何修复它的任何建议?
Von*_*onC 10
也许App/android/AndroidManifest.xml确实存在,但是有一个不同的情况(比如App/android/androidmanifest.xml,这意味着App/android/AndroidManifest.xml没有版本化(因此错误信息):
那么git mv使用正确的案例就足够了.
发生的事情是Git中有两个文件夹,"
App"和"app".
当我在Windows下检出repo时,由于Windows的大小写不敏感,它实际上将两个文件夹重叠为一个"App".
这意味着,目录结构很好,但是一半的文件(来自"app" 的文件)有一个无效的Git路径!
另一个让我感到沮丧的怪癖是,如果您使用命令行,它将使用您当前的git mv文件路径。所以如果你有一个文件C:\Git\MyRepo\MyFolder\MyFile.txt
如果你这样做:
c:
cd git
cd myrepo
cd myfolder
dir
一切都会正常,你会看到你的文件。但如果你输入,git mv MyFile.txt MyFile2.txt你会得到一个错误,因为 git 找不到 Myfile.txt。
原因是它正在查看您当前的路径,即c:\git\myrepo\myfolder\
但 git 是区分大小写的。所以你必须返回并输入
c:
cd Git
cd MyRepo
cd MyFolder
如果你然后输入 git mv 它将工作正常。
将其作为像我这样在调试此错误消息时发现这篇文章的人的答案。