title: Ignore file from git commit but protect it from clean
body: <p>In my work tree I have a mixture of files in .gitignore:</p>
  
  <ol>
  <li>Build outputs</li>
  <li>Sensitive files that shouldn't be part of the repo (e.g. passwords, connection details for local servers)</li>
  </ol>
  
  <p>If I want to rebuild my project from scratch, I can do <code>git clean -x</code> to remove the build outputs in (1). But this also removes the sensitive files in (2).</p>
  
  <p>Is there a way to mark a file so it's not affected by <code>git clean</code> while still being ignored by <code>git commit</code>?</p>