git 默认是大小写不敏感!!!

加了感叹号是什么意思呢,意思就是这本身就是一个坑,本人使用的 IDE 是 idea(网上说 Eclipse 可以避开问题),这个 IDE 本身就集成了 git,但是如果要在 terminal 使用 git 命令,还需先安装并配置好 git 环境变量,然后在 idea 配置 git 安装路径...

扯远了,先说说这个坑,在 idea 上对文件大小写重命名时,比如 DataExt.java 改成 Dataext.java,git 是不会做辨认的,即使你看到的是 Dataext.java,等到你 push 到远程分支上去,你会发现分支上的还是 DataExt.java,这时别人要是 merge 你的分支或者 checkout 下来时,就报错啦。

如何避免?

哎,你上网一搜,都是说把 git 设置成大小写敏感 git config core.ignorecase false(其实这也是个坑)。。。。

我就分情况解决吧:

1、先说一下 git 大小写不敏感,也就是默认的情况下如何解决:
(建议默认)

使用命令:

git mv DataExt.xml Dataext.xml

ps:  文件夹重命名      git mv foldername tempname && git mv tempname folderName (在大小写不敏感的系统中,如 windows,重命名文件夹的大小写, 使用临时文件名)



java MultipartFile 重命名 重命名java文件_git

此时暂存区的文件已改动

接下来 commit 到本地分支,最后 push 上远程分支

git commit -m '提交说明'
git push

使用 IDE 的可以操作界面提交并推送。

2、接下来要说那些设置了大小写敏感的怎么提交:
(不建议设置)

为什么说设置了大小写敏感也是个坑,因为假设

分支

文件

A

DataExt.java

B

Dataext.java

我在本地的分支 B 设置了 git config core.ignorecase false,并且文件是小写的 Dataext.java,接下来如果 merge 了分支 A 的话,会出现错误:

error: The following untracked working tree files would be overwritten by merge:DataExt.java

意思是:分支 A 中的 DataExt.java 将会重写分支 B 的文件

那这样的话,假设路人甲和乙都是使用分支 A 的,你 merge 他们,就会提示文件将被重写。。。坑啊!

解决方法都是将 core.ignorecase 设置为 true,然后再进行操作,那设置为 false 又有何意义?

哎。。。对于设置了大小写敏感的修改文件名大小写要怎么提交呢?

首先 记住 将你的文件备份!

然后删除

git rm DataExt.java

,将备份文件重命名 Dataext.java 放到路径下,添加

git add Dataext.java

提交

git commit -m '提交说明'



java MultipartFile 重命名 重命名java文件_gitlab_02


作者:Sam168666