.gitignoreファイルとは
.gitignoreファイルとは、Gitで管理しているフォルダ内で、特定のファイルの変更を無視するためのファイルです。

.gitignoreファイルを設定しておくとこんなメリットがある
例えば、プロジェクト内でライブラリをインストールしている場合。
ライブラリのアップデートの度に自分のソースコードとは直接関係のないファイルが変更として検知されてしまうと、自分が行った変更範囲が分からなくなってしまいますよね。
.gitignoreファイルを設定しておくと、自分が行った変更とは直接関係のないファイルの差分を無視できます。
特定のファイルだけは変更を検知したい場合、一部だけ無視しないことも可能です。
.gitignoreファイルを利用する具体的なケース
.gitignoreファイルは、下記のケースで利用されます。
- 外部ライブラリのファイルを無視する
- 一時ファイルを無視する
- ビルド結果を無視する
- キャッシュファイルを無視する
つまり、.gitignoreファイルとは自分のソースに集中するためのファイルといえます。

.gitignoreファイルを使うには
.gitignoreを使うためには、同じフォルダでGitが有効になっている必要があります。
そのフォルダの中に「.git」フォルダが含まれていればGitは有効になっています。
.gitフォルダは隠しフォルダなので、Windowsを利用している場合は、隠しフォルダを表示する設定にしておいてくださいね。
隠しフォルダを表示するには、エクスプローラーを開いて、「オプション > 表示 > 隠しファイル、フォルダー、および隠しドライブを表示する」にチェックを付けます。


.gitフォルダが作成されていない場合は、下記のコマンドをPowerShellから実行してください。
cd .gitignoreファイルを作りたいフォルダのパス
git init
Visual Studio Codeを使用している場合は、サイドバーの「ソース管理」から実行することも出来ます。

ソース管理の中の「リポジトリを初期化する」をクリックしてください。
.gitignoreファイルの作り方
「.git」フォルダと同じ階層に.gitignoreという名前でファイルを作成します。

この階層のことを、プロジェクトのルートフォルダと呼びます。
.gitignoreの中身はコードエディターで編集していくのが良いでしょう。
Visual Studio Codeであれば、.gitignoreの書き方に合わせてハイライト表示をしてくれます。

.gitignoreファイルの書き方解説
ここからは、.gitignoreファイルの中身の具体的な書き方を紹介していきます。
.gitignoreファイルでは、改行区切りでファイルやフォルダを指定します。
.gitignoreファイルには、書き方の規則が5種類あります。
- コメントを書くには#を使う
- 特定のファイルを無視するにはファイル名を指定する
- フォルダを無視するにはフォルダ名の後ろに「/」を付ける
- パターンとして、「*」「?」「[」「]」が使える
- 無視したくない場合は「!」を先頭に付ける
.gitignoreの書き方1:コメントを書くには#を使う
行の先頭に「#」を書くと、その行をコメントとして扱うことができます。
# コメント
.gitignoreの書き方2:特定のファイルを無視するにはファイル名を指定する
特定のファイルを無視するには、無視したいファイル名を指定します。
# test.txtは全部無視
test.txt
# プロジェクトルートフォルダのトップのtest.txtだけ無視
/test.txt
先頭に「/」を書くか書かないかで無視する範囲が変わります。
- 「/」を書かない場合…ファイル名が一致すれば全部無視
- 「/」を書いた場合…プロジェクトルートフォルダ直下のファイルだけ無視


.gitignoreの書き方3:フォルダを無視するにはフォルダ名の後ろに「/」を付ける
フォルダについても、先頭の「/」による動きは同じです。
フォルダの場合は、後ろに「/」を付けるのがポイントです。
# フォルダを無視
folder-a/
# このように書くと同じ名前のファイルも無視する
folder-a
folder-a/
と書いた場合、folder-aフォルダの中身が無視されます。
folder-a
と書いた場合、ファイルであってもフォルダであっても、folder-aという名前であれば無視されます。


.giignoreの書き方4:パターンとして、「*」「?」「[」「]」が使える
特定の条件に当てはまるファイル、フォルダを無視したい場合、全て書くのは大変ですよね。
そういう場合は、パターンを使用します。
パターン | 意味 |
---|---|
* | 任意の文字列 |
** | 0個以上のファイルかフォルダ |
? | 任意の1文字 |
[<文字>] | []の中のいずれかの1文字 |
\ | ?、*、[という文字自体を表したい場合、前に付ける |
.gitignoreで使えるパターンはglobパターンと言います。
globパターンはファイルパスを指定するためのパターン表記方法です。
.gitignore以外でも使う機会があるので、覚えておきましょう。
パターンの解釈は「/」区切りごとに行われます。
書き方のサンプル
*.log
.logという拡張子のファイルを無視します。
/test/*.log
testフォルダ内にある.logファイルを無視します。
/test/**/*.log
testフォルダと、その中に含まれるフォルダにある.logファイルを無視します。
?.log
1文字+拡張子が.logのファイルを無視します。
[1-9].log
1から9までの数字+拡張子が.logのファイルを無視します。
[1-9]*.log
1から9始まりの名前+拡張子が.logのファイルを無視します。
.gitignoreの書き方5:無視したくない場合は「!」を先頭に付ける
特定のファイル・フォルダを無視したくない場合は、「!」を先頭に付けます。
「無視したくないなら、.gitignoreファイルに書かなければ良いのでは?」と思ったあなた。
確かにその通りです。
「!」は、「このフォルダの下に含まれるファイルは基本的に無視したいけど、このファイルだけは無視したくない」という場合に使います。
# folder-bの中のファイルを無視
/folder-b/*
# folder-bの中のkeep.txtは無視しない
!/folder-b/keep.txt
