在Windows上更改文件的大小写?

在我们想要重命名的git控制的代码库中有几个文件。 具体来说,我只是想改变文件的大小写,以便sourceCode.java成为SourceCode.java 。 问题是:我在一个Windows机器上,文件系统认为它们是相同的文件名。

我怎样才能让Windows和Git识别这个变化并检查它呢?

在这里看看更多的提示如何做到这一点:

如何使git忽略更改情况?

要么:

 git mv -f name.java Name.java 

如果你在一个FAT文件系统上,你唯一的select就是做两个阶段的重命名:

  1. sourceCode.java重命名为anything.you.like
  2. anything.you.like重命名为SourceCode.java

早在我们使用Perforce的时候,我们就遇到了这个问题,这是我们唯一可以解决的问题。

以下步骤允许我在Windows上更改案例:

  • .git/config [core]joinignorecase = false ;
  • 将要重命名的文件移出项目目录;
  • 将删除添加到索引;
  • 将所有文件移回到其原始位置并更改文件和/或目录的大小写;
  • 将所有“新”文件添加到索引;
  • 在第一步删除ignorecase = false

这样你有一个单独的提交包含重命名,它可以很容易地改变,如整个目录。

小心。 这样做会导致无法合并的更改。 在Windows上合并时,Git会感到困惑,因为它不能确定旧的大写名称和新的小写名称是否是相同的文件(对于Git,它们不是,而是对于文件系统)。 要合并,您必须执行一些手动解决方法,如在合并之前删除文件。

看到与同名,但不同大小写的文件的Git rebase问题

我不确定这个问题是否比在你的项目中永远有一个非常规命名的文件更糟糕,但值得了解的是,是否有很多用户有很多分支,最终都需要合并。

使用NTFS(或FAT),单个“git mv”命令不能解决问题。 这个问题显示了一个工作原理: git mv,只改变目录的大小写