On windows : > git --version git version 2.14.2.windows.2 On linux : > git --version git version 2.7.4 I would like to understand the solution : If i understood it correctly : it removes file_name.txt from index, so git forgets about it. we then add the file again after changing encoding. This time, git takes it as utf-8 file and converts crlf to lf when storing it internally. Right ? Thank you for the support. On Wed, Nov 15, 2017 at 10:42 PM, Torsten Bögershausen <tboegi@xxxxxx> wrote: > On Wed, Nov 15, 2017 at 01:41:42PM +0530, Ashish Negi wrote: >> > If you commit the file, it will be stored with LF in the index, >> This is what i believe is not happening. >> >> Lets do this with a public repository and steps which are reproducible. >> I have created a repo : https://github.com/ashishnegi/git_encoding >> >> If you clone this repo in linux and run `git status`, you will find >> that file is modified. > > This is what what I get: > > git ls-files --eol > i/lf w/lf attr/text=auto .gitattributes > i/crlf w/crlf attr/text=auto file_name.txt > > (And you get the same, I think) > Newer versions of Git (>=2.10) will -not- treat file_name.txt as changed, > older versions do. > What does "git --version" say on your Linux machine ? > > However, if you want to fix it, you want to either end up with > > A) > git ls-files --eol > i/lf w/lf attr/text=auto .gitattributes > i/lf w/crlf attr/text=auto file_name.txt > > or > B) > git ls-files --eol > i/lf w/lf attr/text=auto .gitattributes > i/crlf w/crlf attr/-text file_name.txt > > (The "attr/-text" means "don't change the line endings") > > Both A) or B) will work, typically A) is preferred. > > You should be able to achive A) : > git rm --cached file_name.txt && git add file_name.txt > rm 'file_name.txt' > warning: CRLF will be replaced by LF in file_name.txt. > The file will have its original line endings in your working directory. > > git ls-files --eol > i/lf w/lf attr/text=auto .gitattributes > i/lf w/crlf attr/text=auto file_name.txt > > [snip the rest]