Git replacing LF with CRLF
Git replacing LF with CRLF
Git replacing LF with CRLF
Re: Git replacing LF with CRLF
These messages are due to an incorrect default value of `core.autocrlf` on Windows.
The concept of `autocrlf` is to handle line endings conversions transparently. And it does!
**Bad news**: the value needs to be configured manually.
**Good news**: it should only be done *one* time per Git installation (per project setting is also possible).
**How `autocrlf` works**:
```
core.autocrlf=true: core.autocrlf=input: core.autocrlf=false:
repository repository repository
^ V ^ V ^ V
/ \ / \ / \
crlf->lf lf->crlf crlf->lf \ / \
/ \ / \ / \
```
Here `crlf` = win-style end-of-line marker, `lf` = unix-style (also used on Mac since Mac OS X).
(pre-osx `cr` is not affected for any of three options above.)
**When does this warning show up (under Windows)?**
– `autocrlf` = `true` if you have unix-style `lf` in one of your files (= RARELY),
– `autocrlf` = `input` if you have win-style `crlf` in one of your files (= almost ALWAYS),
– `autocrlf` = `false` – NEVER!
**What does this warning mean?**
The warning "*LF will be replaced by CRLF*" says that you (having `autocrlf`=`true`) will lose your unix-style LF after commit-checkout cycle (it will be replaced by windows-style CRLF). Git doesn't expect you to use unix-style LF under Windows.
The warning "*CRLF will be replaced by LF*" says that you (having `autocrlf`=`input`) will lose your windows-style CRLF after a commit-checkout cycle (it will be replaced by unix-style LF). Don't use `input` under Windows.
**Yet another way to show how `autocrlf` works**
```
1) true: x -> LF -> CRLF
2) input: x -> LF -> LF
3) false: x -> x -> x
```
where *x* is either CRLF (windows-style) or LF (unix-style) and arrows stand for
```
file to commit
*(Réponse tronquée)*
The concept of `autocrlf` is to handle line endings conversions transparently. And it does!
**Bad news**: the value needs to be configured manually.
**Good news**: it should only be done *one* time per Git installation (per project setting is also possible).
**How `autocrlf` works**:
```
core.autocrlf=true: core.autocrlf=input: core.autocrlf=false:
repository repository repository
^ V ^ V ^ V
/ \ / \ / \
crlf->lf lf->crlf crlf->lf \ / \
/ \ / \ / \
```
Here `crlf` = win-style end-of-line marker, `lf` = unix-style (also used on Mac since Mac OS X).
(pre-osx `cr` is not affected for any of three options above.)
**When does this warning show up (under Windows)?**
– `autocrlf` = `true` if you have unix-style `lf` in one of your files (= RARELY),
– `autocrlf` = `input` if you have win-style `crlf` in one of your files (= almost ALWAYS),
– `autocrlf` = `false` – NEVER!
**What does this warning mean?**
The warning "*LF will be replaced by CRLF*" says that you (having `autocrlf`=`true`) will lose your unix-style LF after commit-checkout cycle (it will be replaced by windows-style CRLF). Git doesn't expect you to use unix-style LF under Windows.
The warning "*CRLF will be replaced by LF*" says that you (having `autocrlf`=`input`) will lose your windows-style CRLF after a commit-checkout cycle (it will be replaced by unix-style LF). Don't use `input` under Windows.
**Yet another way to show how `autocrlf` works**
```
1) true: x -> LF -> CRLF
2) input: x -> LF -> LF
3) false: x -> x -> x
```
where *x* is either CRLF (windows-style) or LF (unix-style) and arrows stand for
```
file to commit
*(Réponse tronquée)*