Re: Git Config Question
From: Jonathan Nieder <hidden>
Date: 2016-06-15 22:49:08
(+cc: Eyvind Bernhardsen, Finn Arne Gangstad) Hi! Shilpa Kulkarni wrote:
2. Person Y checks in code (commit & push). Checks in file a, b. 3. Person X does a 'git pull origin master'. Pull succeeds - however 'git status' shows file a, b as modified even though person X has done nothing with these files.
[...]
Someone has recommended we all use core.safecrlf=false core.autocrlf=false But this would require running dos2unix cmd while running scripts on linux which seems like an overhead.
I have not kept up with the latest best practices. But I suspect something like the following would work: 1. In .git/config, ~/.gitconfig, or /etc/gitconfig, on Windows: [core] autocrlf = true See core.autocrlf in git-config(1). I think git for windows does this automatically. 2. In .git/config, ~/.gitconfig, or /etc/gitconfig, on Unix: [core] autocrlf = input 3. Convert line-endings in the tracked content. Something like: $ git status; # make sure there are no untracked files present $ git rm -fr --cached .; # stop tracking all files $ git add .; # fix line-endings on all files $ git commit; # record that you have done so 4. Convert line-endings in the work tree. Something like: $ git rm -fr .; # remove all tracked files $ git checkout HEAD -- .; # fetch them back again 5. In .gitattributes, something like: * auto *.sh crlf *.[ch] crlf *.jpg -crlf See gitattributes(5) for details. Hope that helps, Jonathan