2

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 の git パネル

変更をステージングし、コミット メッセージを書き、コミットします。VSCode は当然失敗します。

コミット時に vscode が失敗する

VSCode で何度コミットしても、blackandによって行われた自動変更は「ステージング」されませんend-of-file-fixer。そのため、もう一度クリックすると、ファイルの内容が更新されるため、VSCode にファイルを再度追加してもらいたいと思います。これどうやってするの?

前もって感謝します。


環境

  • VS コード 1.52.1
  • Git 2.25.1
  • 事前コミット 2.9.3

関連する場合:

  • クブンツ 20.04.1
  • パイソン3.8
4

0 に答える 0