1
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?

More than 3 years have passed since last update.

キャッシュを削除してもgitignoreが反映されない時は?

Last updated at Posted at 2020-11-04

何をしても.gitignoreが反映されない!

という状態で詰まったので、解決までの経緯を備忘録兼ねて記事にします。

忙しい人向けの結論

  • .gitignore文字コードを見直す。
  • UTF-8Shift-JISにしよう。

詳細(下にジャンプします)


症状とか経緯とか↓

キャッシュを消してもダメだった

一度pushしたファイルだったり、インデックスが残ってると反映されないらしいので、キャッシュを全消し。

git rm -r --cached .

改めて、

git add .

で、いつもは正常に反映される・・・はずだった━━━━

しかし今回ばかりは何をしても反映されない!

放り投げて寝ました

何時間も向き合って、あらゆるパターンを試してもダメ。
寝て起きて試してもダメ。

見てください。寝癖もダメって言ってます。
no_neguse.jpg

結論:文字コードを見直す

その.gitignoreくん、文字コードおかしくないですか?
UTF-8Shift-JISで書きましょう。

...

ムリダナ(・×・)と諦めかけていたら、
LELF_ignore.png
ん...?文字コードがUTF-16 LEで、改行コードがLFだと...?
意図せぬ文字コードになっています。
8CRLF_ignore.png
文字コードをUTF-8にしてあげたら、あっさり反映されるようになりました(改行コードもCRLFに変更しました)。
Shift-JISでも正常に反映されます。

原因とか

【原因】Windows PowerShell+giboの相性問題

今回は、Windows PowerShell上でgiboを用いて生成していました。
この組み合わせが問題みたい。

今回の.gitignoreの生成風景
gibo dump Python VisualStudioCode >> .gitignore

どうやら、Windows PowerShellgiboの組み合わせだと、デフォルトで出力がUTF-16 LEかつLFになるみたいです。

GitはUTF-16 LEで書かれた.gitignoreを読むことができません。

【対策】Windows PowerShell+giboは使わない

giboを利用するならWindows PowerShellは避けた方良さそうです。

代わりに、以下の組み合わせが良さそうです。

  • コマンドプロンプト + gibo
  • Git Bash + gibo
  • Macのターミナル + gibo

【言い訳】Windows PowerShell+giboは普段使っていない

普段、Macのターミナルgiboを用いて.gitignoreを生成していました。

前項のとおり、Macのターミナル+giboの組み合わせの場合、UTF-8かつCRLFで出力されるため、正常に反映されていました。

解決に何時間も要した最大の原因はコレです。
まさか文字コードが落とし穴だなんて、1μmも考えていませんでした。

まとめ

何してもダメな時、文字コードを見直してみてください。

コレに限らず、文字コードが原因でハマること、年に数回ありますよね。
今後も気を付けたいところです。

遅延増加したけれど沢山眠れたので、
yokunai.png

1
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
1
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?