(Back to the beginning) You have a file ApplicationManifest.xml It is encoded in UTF-16 (and has CRLF) You convert it into UTF-8 The file has still CRLF (in the worktree) Now you add it and make a commit. Under both Linux and Windows you have "text=auto". I assume that you have efficiently core.eol=lf under Linux and core.eol=crlf on Windows. (That is the default, when you don't change anything) Now, what happens to the CRLF? If you commit the file, it will be stored with LF in the index, on both systems. On checkout, Windows will convert them into CRLF, but Linux will not. That why you see >On linux, during committing i get warning : warning: CRLF will be >replaced by LF in …file_name.. All in all there is nothing wrong, at least as I see it. The question remains: Do you need CRLF in Linux ? Probably not, but if yes, plase add a line *.xml text eol=crlf to your .gitattributes Otherwise your .gitconfig looks good to me.