Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

PowerShellでgitignoreが効かない

More than 1 year has passed since last update.

はじめに

PowerShellでgitコマンド叩いてて、

git init
echo "close.txt" > .gitignore

としても.gitignore が有効にならないので相当ハマった。

同じことで悩んでいる人向けに情報共有

原因は文字コード

PowerShellのversion5以前ではリダイレクト処理の文字コードがBOM付きUTF16になる。これが原因で.gitignoreが上手く機能していなかた。

解決法

PowerShellのversion確認は、$PSVersionTable コマンドを表示する。単にterminalにこの文字を打てばよい。version 5.XだったらUTF16が原因である可能性がある。

PowerShell core のversion 6以降をインストールする。もしくはgit bashなど別のbashシステムを使う。

※注意

WSLを使いたいところですが、ファイルIOが低速ゆえに、シェルスクリプト等を組んでgitコマンドを流すと、checkout系の切り替えに実際のディスク上のファイル変更が間に合わず、エラーになることがあります。しかもIOのタイミングで結果が変わってしまうので問題の再現性が見られず、相当悩みます。gitを使うのはWSL2まで待った方がよさそうです。

pochman
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away