Hi, I specified the `eol` attribute on some files recently and the behavior of Git is very strange. Here is the set of commands to set up the repository used for the discussion: git init echo $'dos\r' > dos git add dos git commit -m "dos newlines" echo "dos -crlf" > .gitattributes git add .gitattributes git commit -m "add attributes" echo "dos eol=crlf" > .gitattributes git add .gitattributes git commit -m "set eol attribute instead" The following behaviors are observed: - `git reset --hard` does not make the working directory clean; and - `git rebase` gets *very* confused about the diffs in the working tree because `git stash` can't reset the working tree; There are probably other oddities lingering about as well. If I commit what Git thinks is the difference, the diff (with invisibles made visible) is: % git diff | cat -A diff --git a/dos b/dos$ index fde2310..4723a1b 100644$ --- a/dos$ +++ b/dos$ @@ -1 +1 @@$ -dos^M$ +dos$ Seen in 2.9.5 and 2.14.0.rc1. --Ben