我在IntelliJ 15.0.3
工作并使用Git通过Git Bash(提交和推送更改)。当我从远程git存储库中fetch
文件时
它包含不同的行分隔符(混合模式或其调用方式)。我的意思是有些行以CRLF
结尾,有些行以LF
结尾(同一个文件)。
当我在IDEA中进行更改时 - 文件会自动保存,并且所有行分隔符都会减少(更改)为IDEA默认行分隔符(LF
对我来说)。
git将这些更改视为对文件的更改,因此我提交了大量更改的文件:
- some line
+ some line
因为some line [CRLF]
已更改为some line [LF]
。
如何配置Git
忽略此问题或如何配置IntelliJ IDEA
以便在此混合模式下保留文件?我不希望在存在时提交更改没有变化。
答案 0 :(得分:7)
安装git时,我们可以选择设置checkout as-is and commit as-is
。
如果没有设置,我们可以使用git config。
以下命令可帮助您完成此操作。
git config --global core.autocrlf true
根据文件:
Git can handle this by auto-converting CRLF line endings into LF when you
add a file to the index, and vice versa when it checks out code onto your
filesystem. You can turn on this functionality with the core.autocrlf setting.
If you’re on a Windows machine, set it to true – this converts LF endings into
答案 1 :(得分:3)
IDEA将更改决议委托给git。
因此您必须force desired line breaks in IDEA或to force desired line breaks in git。
在我的情况下autocrlf true
已经存在于我的电脑上,但工作副本最初是从同事的共享中复制的,其中已经使用其他设置进行了检查。
干净的结帐可以解决问题,但我已经更改了一些文件,并希望保留它们。 这可以通过重置whole project或只需要subdirectory的git索引来解决。
答案 2 :(得分:0)
尝试将以下配置添加到您的.gitconfig(仅适用于基于Unix的操作系统)
[core]
autocrlf = input
eol = lf
您还可以在终端中进行此类更改:
git config --global core.eol lf
git config --global core.autocrlf input