How to change line-ending settings
The normal way to control this is with git config
For example
git config --global core.autocrlf true
For details, scroll down in this link to Pro Git to the section named "core.autocrlf"
If you want to know what file this is saved in, you can run the command:
git config --global --edit
and the git global config file should open in a text editor, and you can see where that file was loaded from.
Line ending format used in OS:
- Windows:
CR
(Carriage Return\r
) andLF
(LineFeed\n
) pair - OSX, Linux:
LF
(LineFeed\n
)
We can configure git to auto-correct line ending formats for each OS in two ways.
- Git Global configuration
- Using
.gitattributes
file
Global Configuration
In Linux/OSX
git config --global core.autocrlf input
This will fix any CRLF
to LF
when you commit.
In Windows
git config --global core.autocrlf true
This will make sure that, when you checkout in windows, all LF
will be converted to CRLF
.
.gitattributes File
It is a good idea to keep a .gitattributes
file as we don't want to expect everyone in our team to set their own config. This file should be placed in the repository root and. If it exists, git will respect it.
* text=auto
This will treat all files as text files and convert to OS's line ending on checkout and back to LF
on commit automatically. If you want to specify the line ending explicitly, you can use:
* text eol=crlf
* text eol=lf
The first one is for checkout and the second one is for commit.
*.jpg binary
This will treat all .jpg
images as binary files, regardless of path. So no conversion needed.
Or you can add path qualifiers:
my_path/**/*.jpg binary