title: Git pre-commit hooks keeps modifying files even after I have staged previously modified files
body: <p>I'm running git <a href="https://github.com/pre-commit/pre-commit" rel="noreferrer">pre-commit</a> and running black as one of the hooks.</p>
  
  <p>Now when I run <code>commit</code>, black fails and says:</p>
  
  <pre><code>All done! ✨  ✨
  15 files reformatted, 1 file left unchanged.
  </code></pre>
  
  <p>I reviewed the reformatted files and I'm fine with them. So I stage those files and try running <code>commit</code> again, but I keep getting the same message as above. I have tried the following commands with no success.</p>
  
  <pre><code>git add .
  git add -A
  git add -u
  </code></pre>
  
  <p>This is my <code>.pre-commit-config.yaml</code> file:</p>
  
  <pre><code>repos:
      -   repo: https://github.com/psf/black
          rev: 19.10b0
          hooks:
              - id: black
                language_version: python3.6
      -   repo: https://github.com/pre-commit/pre-commit-hooks
          rev: v2.5.0
          hooks:
              -   id: check-merge-conflict
              -   id: check-docstring-first
              -   id: check-json
              -   id: check-yaml
              -   id: debug-statements
              -   id: double-quote-string-fixer
              -   id: end-of-file-fixer
              -   id: name-tests-test
                  args: [--django]
              -   id: requirements-txt-fixer
              -   id: trailing-whitespace
      -   repo: https://gitlab.com/pycqa/flake8
          rev: 3.7.9
          hooks:
              -   id: flake8
                  additional_dependencies: [flake8-typing-imports==1.6.0]
      - repo: https://github.com/asottile/reorder_python_imports
        rev: v1.4.0
        hooks:
              -   id: reorder-python-imports
                  args: [--py3-plus]
      -   repo: https://github.com/Lucas-C/pre-commit-hooks-bandit
          rev: v1.0.4
          hooks:
              -   id: python-bandit-vulnerability-check
                  args: [-l, --recursive, -x, tests]
                  files: .py$
      -   repo: local
          hooks:
              -   id: tests
                  name: run tests
                  entry: venv/bin/pytest -v -m fast
                  language: python
                  additional_dependencies: [pre-commit, pytest]
                  always_run: true
                  pass_filenames: false
                  types: [python]
                  stages: [commit]
      -   repo: local
          hooks:
              -   id: tests
                  name: run tests
                  entry: venv/bin/pytest -x
                  language: system
                  types: [python]
                  stages: [push]
  </code></pre>
  
  <p>When I do git status --short, I get this:</p>
  
  <pre><code>M  .pre-commit-config.yaml
  M  pytest.ini
  M  setup.cfg
  RM tests/tests_report.html -&gt; tests/commit_pytest_report.html
  R  report.html -&gt; tests/commit_tests_report.html
  AM tests/coverage/index.html
  A  tests/coverage/file_1.png
  </code></pre>
  
  <p>When I run <code>git commit -m "test"</code>, after running <code>git add .</code>, <code>git add -A</code>, or <code>git add -u</code>; I get this:</p>
  
  <pre><code>black....................................................................Failed
      - hook id: black
      - files were modified by this hook
  
  reformatted &lt;filename&gt;
  ...
  All done! ✨  ✨
  15 files reformatted, 1 file left unchanged.
  
  Check for merge conflicts................................................Passed
  Check docstring is first.................................................Passed
  Check JSON...............................................................Passed
  Check Yaml...............................................................Passed
  Debug Statements (Python)................................................Passed
  Fix double quoted strings................................................Failed
  - hook id: double-quote-string-fixer
  - exit code: 1
  - files were modified by this hook
  
  Fixing strings in &lt;file_name&gt;
  ...
  
  Fix End of Files.........................................................Failed
  - hook id: end-of-file-fixer
  - exit code: 1
  - files were modified by this hook
  
  Fixing &lt;file_name&gt;
  ...
  
  Tests should end in _test.py.............................................Passed
  Fix requirements.txt.................................(no files to check)Skipped
  Trim Trailing Whitespace.................................................Passed
  flake8...................................................................Failed
  - hook id: flake8
  - exit code: 1
  
  &lt;file_name&gt;: &lt;some flake8 error&gt;
  ...
  
  Reorder python imports...................................................Passed
  bandit...................................................................Passed
  run tests................................................................Failed
  - hook id: tests
  - files were modified by this hook
  
  ============================= test session starts ==============================
  platform darwin -- Python 3.6.9, pytest-5.4.1, py-1.8.1, pluggy-0.13.1
  
  &lt;test details&gt;
  
  (0.00 durations hidden.  Use -vv to show these durations.)
  ====================== 2 passed, 113 deselected in 2.51s =======================
  </code></pre>
  
  <p>I'm not sure what I'm doing wrong; git doesn't seem to have updated my commits with blacks formatting. I couldn't find anything through my Google research. Thanks!</p>