java - Git:重命名的文件在java中编译时会导致冲突

标签 java git

很久以前,我创建了一个存储库并提交了一个名为 CameraAction.java 的文件。

随着时间的推移,我发现“A”的大写导致了 Spring Boot 的一些问题(不记得到底是什么问题),但决定调用我的类 Cameraaction.java 会更安全.

现在,每次我从 git pull 时,我都会得到 CameraAction.java 文件名,而不是 Cameraaction.java。

当我编译应用程序时,这会导致冲突,因为文件名和类名拼写不一样:

CameraAction.java:12: error: class Cameraaction is public, should be declared in a file named Cameraaction.java
        public class Cameraaction extends Action {
               ^ 

如何解决这个问题?

我尝试这样做:

git rm --cached CameraAction.java

但我回想起来却说:

fatal: pathspec 'CameraAction.java' did not match any files

最佳答案

要将 CameraAction.java 提交为 Cameraaction.java(这并不是正确的做法,请参阅下面有关 Java 命名约定的链接),请尝试执行以下操作:

git mv -f CameraAction.java Cameraaction.java

后跟 git commit -m "Fixed the case of a file"git Push 通过执行新的 git clone 并检查文件是否已作为 Cameraaction.java

checkout ,确认问题已消失

如果在执行上述操作时出现“文件存在”错误,请使用 tmp 文件来执行此操作,如下所示:

git mv CameraAction.java CameraAction.java.tmp
git mv CameraAction.java.tmp Cameraaction.java

但正如上面评论者所指出的,Java Naming Code Conventions关于类名确实有以下说法:

enter image description here

<小时/>

git 如何处理不区分大小写的文件系统?

Git 有一个配置设置,告诉它是否区分大小写:core.ignorecase。要告诉 Git 区分大小写,只需将此设置设置为 false:

git config core.ignorecase false

来自git config documentation :

core.ignorecase

If true, this option enables various workarounds to enable git to work better on filesystems that are not case sensitive, like FAT. For example, if a directory listing finds makefile when git expects Makefile, git will assume it is really the same file, and continue to remember it as Makefile.

The default is false, except git-clone(1) or git-init(1) will probe and set core.ignorecase true if appropriate when the repository is created.

关于java - Git:重命名的文件在java中编译时会导致冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34226340/

相关文章:

java - 所需的请求正文内容缺失 : org. springframework.web.method.HandlerMethod$HandlerMethodParameter

java - 用java发送数据到php页面

java - 数组在 Android 的 Spinner 中不保存值

Java secondary not public 类的使用会产生错误 "Type is not Visible",即使访问的方法在主类中是公共(public)的

java - java中的私有(private)实例和getter可见性

windows - Windows 批处理文件中的 LF 与 CRLF 行结尾

windows - Unicode解码错误: 'utf8' codec can't decode byte 0x92 in position 377826: invalid start byte

android - 如何开始将 Git 与 Android Studio 集成?

linux - Git失败,出现libcharset.so.1

git - 未找到 Opencv 3.0.0 额外模块