【プログラミング】git commitでコミットエラーが起き、 変更ファイルがどっか行って超焦った話
スポンサーリンク

コンソール見たらこんな感じのエラーだった

error Delete `..` prettier/prettier

はて。。??

スポンサーリンク

結論ファイル復元できたし、コミット成功まで行ったよ

結論から言うと、コミット失敗したファイルは自動的に退避してくれていたので、以下を参考に復元することができました。

【git stash】コミットはせずに変更を退避したいとき

git stash list
git stash apply [復元したい内容が含まれているインデックス番号]

2日くらいかかった修正なので、戻ってよかったです。。

じゃあ、なぜコミット失敗したの?

では、なぜコミット失敗したのかですが、git commitを契機にeslintによるソースコードの静的チェックとPrettierによるコードフォーマットチェックが行われ、変更ファイル内にエラーが存在したためです。

昨日までの僕にはこの説明では何のこっちゃ分かりません。

↓eslintって何ですのん?

eslintとは

Prettierって何ですのん?

prettierとは

git commitでeslintやPrettierを実行できる機能があるの?と昨日までの僕は勘違いしていました。

git commit実行時にeslintやPrettierを実行するためには、huskylint-stagedというツールを使って実現しています。(また訳のわからない・・)

↓huskyとlint-stagedって何ですのん?

huskyとlint-stagedとは

つまり、 処理順番をまとまると、以下の感じですかね。

  1. git commit時に発生するGitフック「pre-commit」をhuskyでハンドリング
  2. huskyの設定で「pre-commit」時の処理をlint-stagedに設定しておく
  3. lint-stagedによってGitステージング上のファイルを対象にeslintやPrettierを実行

僕の書いたソースコードは③でPrettierによるフォーマットチェックでエラーになっていた訳ですね。

じゃあどうやってコミット成功まで行ったの?

愚直にいくと、エラーを全て自力で解消するということになるのですが、そこはコマンドが用意されていました。助かった!

yarn run lint –-fix

--fixオプションをつけることで、フォーマットの自動補正してくれるようです。ここら辺参考にしました。

【エラー解決方法】Nuxt.js で「error Insert `⏎` prettier/prettier」が発生したときの対処法

 

スポンサーリンク

Twitterでフォローしよう

おすすめの記事