pre-commit
以下のように構成された、Pythonのツールを使用したいくつかの事前コミットフックを備えたDjangoプロジェクトがあります。
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.0.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files
- repo: https://github.com/python/black
rev: master
hooks:
- id: black
- repo: https://github.com/asottile/seed-isort-config
rev: master
hooks:
- id: seed-isort-config
- repo: https://github.com/pre-commit/mirrors-isort
rev: master
hooks:
- id: isort
- repo: https://gitlab.com/pycqa/flake8
rev: master
hooks:
- id: flake8
通常、ターミナルのプレコミットフックが原因でコミットが失敗した場合は、以下を実行します。
git add foo.py
git commit -m "added foo"
# pre-commit runs and fails
# black, end-of-file-fixer fixes staged files
git add foo.py # add fixed files again
git commit -m "added foo"
# this time, runs successfully
VSCode から同じ動作を得たいと思います。
変更をステージングし、コミット メッセージを書き、コミットします。VSCode は当然失敗します。
VSCode で何度コミットしても、black
andによって行われた自動変更は「ステージング」されませんend-of-file-fixer
。そのため、もう一度クリックすると、ファイルの内容が更新されるため、VSCode にファイルを再度追加してもらいたいと思います。これどうやってするの?
前もって感謝します。
環境
- VS コード 1.52.1
- Git 2.25.1
- 事前コミット 2.9.3
関連する場合:
- クブンツ 20.04.1
- パイソン3.8