0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Git】【Husky】削除したファイルをpre-commitの対象から除外する

Posted at

前提

エラー内容

Huskyのpre-commitを使用して、コミット時にLintを実行するようにスクリプトを書いてます。
いつも通り、git addgit commitをしたらエラー発生しました。

ERROR: The file "app/Http/Controllers/HogeController.php" does not exist.

ファイルが存在しない、、?

削除したファイルをインデックスに上げた後pre-commitすると、削除したファイルに対してLintを走らせようとするのでエラーがでてしまうようです。

結論

git diffに「--diff-filter=d」オプションをつける。
--diff-filter=dは削除されたファイルを除外するオプションです。

.husky/pre-commit
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

# `--diff-filter=d`で削除されたファイルはpre-commitの対象から除外
if git diff --cached --name-only | grep '\.php'; then
    files=$(git diff --cached --name-only | grep '\.php')
    ./vendor/bin/sail composer lint $files && git add $files
fi

また、--diff-filter=Dにすると、削除したファイルのみ取得できるようフィルターをかけられるようです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?