Atom text editor adds "^M" to empty lines
I'm on Ubuntu Linux and noticed the ^M (Carriage Return, Line Feed) during git diff
.
Somehow CRLF was selected at the bottom of the status bar:
I simply clicked it and changed to LF:
It seems to be set on a file-by-file basis so will need to be changed for each problem file.
In my case somehow all the line endings had been changed so git diff
was a sea of red. I used the following to identify 'real' changes:
git diff --ignore-space-at-eol
However, git commit
would still bury the 'real' changes in commit history so I:
- ran
git stash save
- changed line endings in atom
- ran
git commit -am "fix line endings"
- ran
git stash apply
Now the line endings are gone and commits can be made on a precise diff.
Are you using Atom text editor under Windows?
Windows carriage return is \r\n
while it is \n
in Unix.^M
( 0xD
or \r
) is the carriage return character in Windows.
I think, that file was previously saved under Unix ( and already have \n
on each line), so Atom is adding \r
as required by Windows.
Check your bottom of the editor which might have changed your file line endings.
Usually it is LF for Unix
and CRLF for windows