title: Total confusion about line endings
body: <p>I'm on Windows. I have set my <code>core.eol</code> to <code>native</code>. I have set my <code>core.autocrlf</code> to <code>false</code>. I'm pretty sure I started out with files containing CRLF line endings, all of them being one of <code>.clj</code>, <code>.md</code>, or <code>.gitignore</code>. I committed them. Then in the next commit I committed the following <code>.gitattributes</code></p>
  
  <pre><code>* text=auto
  
  *.bat text
  *.bib text
  *.clj text
  *.java text
  *.md text
  *.tex text
  *.txt text
  
  *.jpg binary
  *.pdf binary
  *.png binary
  </code></pre>
  
  <p>In that commit, the diff said every line of every file changed (the line endings I assume).</p>
  
  <p>Having set <code>core.eol</code> to <code>native</code>, I thought I would get CRLF in my working tree, but that is not the case (only for the <code>.gitattributes</code> file, no other file, including <code>.gitignore</code>). I didn't notice earlier because I'm using Vim.</p>
  
  <p>I thought the diff for the gitattributes commit looked ugly, so I tried setting different values for <code>core.autocrlf</code> and <code>core.eol</code>, for example setting them to <code>true</code> and <code>crlf</code> respectively, and doing <code>git filter-branch --tree-filter HEAD</code>. I got the error <code>error: core.autocrlf=input conflicts with core.eol=crlf</code>. I checked with <code>git config --get core.autocrlf</code> and that returned <code>true</code>. So why do I get the error?</p>
  
  <p>I'm very confused. What I want is CRLF line endings in my working tree, and commits that don't change my line endings, i.e. they are LF when committed right from the start, and stay that way. How can I achieve that?</p>