刚签出文件时,git说"不受版本控制"

Dok*_*ott 8 git

我有一个明显的印象,我的Git repo以某种方式被破坏了.

这是我正在做的序列:

  1. git clone [remote的克隆字符串]

    这创建了一个文件"App/android/AndroidManifest.xml",以及其他许多文件.

  2. 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使用正确的案例就足够了.

OP解释的评论:

发生的事情是Git中有两个文件夹," App"和" app".
当我在Windows下检出repo时,由于Windows的大小写不敏感,它实际上将两个文件夹重叠为一个" App".
这意味着,目录结构很好,但是一半的文件(来自" app" 的文件)有一个无效的Git路径!

  • 为了安全起见,请使用制表符补全。 (2认同)
  • 毕竟,上/下案确实是问题所在.发生的事情是Git中有两个文件夹,"App"和"app".当我在Windows下检出repo时,由于Windows不区分大小写,它实际上*将两个文件夹叠加到一个"App"中.这意味着,目录结构很好,但是一半的文件(来自"app"方面的文件)有一个无效的Git路径! (2认同)

Nib*_*Pig 6

另一个让我感到沮丧的怪癖是,如果您使用命令行,它将使用您当前的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 它将工作正常。

将其作为像我这样在调试此错误消息时发现这篇文章的人的答案。