Search code examples
gitintellij-idea

Git and IntelliJ lines separator issue


I am working in IntelliJ 15.0.3 and using Git through Git Bash (to commit and push changes). When I fetch file from remote git repository it contains different line separators (mixed mode or how it's called). I mean that some lines ends with CRLF and some lines ends with LF (the same file).

When I make change in IDEA - file is automatically saved and all line separators are reduced (changed) to IDEA default line separator (LF for me).

And git treats these changes as changes to the file, as a result I commit file with a lot of changes like these:

- some line
+ some line

Because some line [CRLF] was changed to some line [LF].

How to configure Git to ignore this or how to configure IntelliJ IDEA to leave file in this mix-mode? I don't want to commit changes when there are no changes.


Solution

  • While installing git, we will have option to set the checkout as-is and commit as-is.

    If that is not set, we can do with the git config.

    Following command helps you in doing so.

    git config --global core.autocrlf true
    

    As per documentation:

    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 CRLF when you check out code