我通过将第一个字母去大写来更改了一些文件名,如name.jpg中的name.jpg。Git无法识别这些更改,我不得不删除这些文件并再次上传。在检查文件名的更改时,Git是否可以区分大小写?我没有对文件本身进行任何更改。


当前回答

我制作了一个bash脚本,将存储库文件名小写:

function git-lowercase-file {
  tmp="tmp-$RANDOM-$1"
  git mv -f $1 $tmp
  git mv -f $tmp ${1,,}
}

那么你可以这样使用它:

git-lowercase-file Name.jpg

其他回答

使用SourceTree,我可以从UI完成所有这些

将FILE.ext重命名为whatever.ext暂存该文件现在将whatever.ext重命名为file.ext再次暂存该文件

这有点乏味,但如果你只需要对几个文件进行处理,那就很快了

与@Sijmen的答案类似,这是我在OSX上重命名目录时的工作原理(灵感来自另一篇文章的答案):

git mv CSS CSS2
git mv CSS2 css

简单地执行git-mv-CSS CSS会产生无效参数错误:致命:重命名“/static/CSS”失败:无效参数可能是因为OSX的文件系统不区分大小写

p.s BTW如果您使用的是Django,collectstatic也无法识别大小写差异,您必须在静态根目录中手动执行上述操作

只要您只是重命名文件而不是文件夹,就可以使用gitmv:

git mv -f yOuRfIlEnAmE yourfilename

(在Git2.0.1中进行了修改,上面的咒语中的-f标志是多余的,但在较旧的Git版本中需要。)

若并没有工作,使用git-rm文件名从磁盘中删除文件并将其添加回。

将文件Name.jpg重命名为name1.jpg提交删除的文件Name.jpg将文件name1.jpg重命名为name.jpg将添加的文件名.jpg修改为上一次提交git添加名称.jpg修改最后一次提交