Git 区分大小写错误 -- 从 Android Studio 重命名和提交

Git case-sensitivity error -- renaming and committing from Android Studio


例如,我有一个名为 FOOBar.java 的文件,我想将其重命名为 FooBar.java。在尝试了很多东西之后,我得到了错误:



Error:error: pathspec 'app/src/main/java/blahblah/FooBar.java' did not match any file(s) known to git.


我尝试过的事情(不工作,都产生相同的错误):

来自 Android 工作室:

在文件系统中:

来自 Git 命令行:

Windows' 文件系统大多不区分大小写,因此您不能仅通过更改大小写来重命名文件。相反,您将不得不在两者之间使用一个临时名称。

从命令行尝试以下操作:

git mv FOOBar.java FooBar.java.new
git mv FooBar.java.new FooBar.java
git commit -m 'Rename file'

将文件重命名回原始文件,然后将其重命名为不同的名称,然后再重命名为大小写正确的文件。 Git 不会再抛出错误了,它与 Poke 指出的解决方案相同,但使用 android studio。

示例:

Created FOOBar class.
Renamed it to FooBar and then got the error.
Rename it back to FOOBar.
Rename to FooBarTest.
Rename to FooBar.
Git works now.

我找到了一个非常简单的解决方案。 假设您需要将 java 包“Activities”重命名为“activities”。这个包包含几个文件和子包

遵循步骤顺序

  1. 将“Activities”重构为“ActivitiesTemp”(Shift + F6)
  2. 提交并推送这些更改
  3. 再次从“ActivitiesTemp”重构为“activities
  4. 提交并推送这些更改

这就是所有人!

我也遇到了几乎相同的情况,在我的情况下,我创建了一个文件并添加到 git (使用 git add ),添加到 git 后我重命名了文件。在提交时我得到了相同的类型错误。 我通过以下步骤解决了

使用 git status 查看已暂存的文件您可以在列表中看到您的旧文件

- 
-
app/src/main/java/blahblah/FOOBar.java
-
-

使用git重置从暂存中删除文件

git reset app/src/main/java/blahblah/FOOBar.java

从暂存中删除后,您可以添加新文件

git add app/src/main/java/blahblah/FooBar.java

在此之后你可以提交

我发现一个非常简单的修复方法是在终端中执行此命令

git reset

我遇到了类似的问题,我通过更改 git 配置来修复它:

git config core.ignorecase false

尝试重新启动 Android Studio!

我在没有提交的存储库上遇到了这个问题。

http://binaryjeremys.blogspot.com/2015/03/android-studio-doesnt-like-it-when-you.html

要解决此问题,我必须重新开始执行以下步骤:

先备份文件: 右键单击其中一个文件并选择 "Show in Explorer"。 复制任何已更改的文件或整个项目以确保安全。 在 Android 工作室 删除所有 conflicting/erroring 个对象。 VCS -> Git -> 重置磁头 警告:这会将所有内容重置为您上次对 head 进行提交时的状态。 完成后,请确保: 关闭项目,关闭 Android 工作室,然后重新打开两者。 创建新的 类 以用正确的名称替换已删除的冲突对象。 替换这些文件的内容,或copy/paste将备份文件放入文件夹中。 现在提交并推送您的更改,它应该会起作用。

按照 link 查找主要问题原因。