How do I force Git to use LF instead of CR+LF under Windows?
carriage-return, git, git-for-windows, linefeed, newline
Solution
The proper way to get LF endings in Windows is to first set `core.autocrlf` to `false`:
git config --global core.autocrlf false
You need to do this if you are using msysgit, because it sets it to `true` in its system settings.
Now git won’t do any line ending normalization. If you want files you check in to be normalized, do this: Set `text=auto` in your `.gitattributes` for all files:
* text=auto
And set `core.eol` to `lf`:
git config --global core.eol lf
Now you can also switch single repos to crlf (in the working directory!) by running
git config core.eol crlf
After you have done the configuration, you might want git to normalize all the files in the repo:
git add --update --renormalize
If you now want git to also normalize the files in your working directory, run these commands:
git ls-files -z | xargs -0 rm
git checkout .
Problem
I want to force Git to check out files under Windows using just `LF` not `CR+LF`. I checked the two configuration options, but was not able to find the right combination of settings. I want to convert all files to have `LF` line breaks and keep the `LF` in the files. Remark: I used `autocrlf = input` but this just repairs the files when you commit them. I want to force it to get them using `LF`. Probably I wasn't so clear: the repository is already using `LF` but the files checked out using Git for Windows are using `CR+LF` and I want to force Git to get them with `LF`: forcing Unix line endings. ``` $ git config --list | grep crlf core.autocrlf=input ```
Related problems
- Best practices for cross platform git config?
- How to change line-ending settings
- Distributing git configuration with the code
- What will `* text=auto eol=lf` in gitattributes do?
- What's the strategy for handling CRLF (carriage return, line feed) with Git?
- What is the purpose of `text=auto` in `.gitattributes` file?
- Git: how to renormalize line endings in all files in all revisions?