【Git】 .gitignoreでgitの追跡対象外にする

リポジトリを管理する際、node_modules.aws-sdkなど、gitの管理外にしておきたいファイルやフォルダがしばしば出てきます。

ここでは.gitignoreを活用して、追跡対象外にする方法を紹介します。

ファイルの作成

まずは.gitignoreファイルを作成しましょう。

Windowsの場合、必ず拡張子を表示する設定を有効にしてください。

環境によってはドットで始まるファイルがうまく作成できない場合があります。その場合はVSCode上など、IDEなどから作成してみてください。

作成したら、.gitignoreがあるフォルダ内で、追跡対象から除外したいファイルやフォルダを指定します。

例えば、

project
├ app/
│ ├ aaa/
│ ├ bbb/
│ ├ node_modules/
│ │ └ ...
│ └ package.json
├ my_test/
│ └ ...
├ web/
│ ├ dst/
│ ├ src/
│ ├ node_modules/
│ │ └ ...
│ └ package.json
└ .gitignore

というフォルダ構成で、すべてのnode_modulesとmy_testフォルダを除外したい場合は、

**/node_modules

# 個人テスト用
my_test

のように書きます。ここで、記入するパスはすべて.gitignoreからの相対パスです。

.gitignoreの置き場所

.gitignoreは、リポジトリの中に複数個配置できます。

例えば、このように配置できます。

project
├ app/
│ ├ node_modules/
│ │ └ ...
│ └ .gitignore
├ my_test/
│ └ ...
└ .gitignore

もしapp/node_modulesを除外したい場合は、app/.gitignoreのファイルを

node_modules

とすればapp/node_modulesを除外できます。

.gitignoreのパスの書き方

ワイルドカードやコメントなどを紹介します。

# コメント

# すべてのexeファイル
*.exe

# フォルダごと除外
node_modules/

# 特定のフォルダ内にある特定の拡張子 (/**/では、任意のディレクトリが何階層あっても、という意味になります)
foo/bar/**/*.exe

# 除外する対象のうち, 特定のものを除外しないようにする
foo/
!foo/require.txt

まとめ

チーム開発をする上で管理しないほうが良いファイルやフォルダはちょくちょく発生します。案外利用するので、把握しておくと良いです。

特に、複数箇所に.gitignoreを配置し、それぞれに相対パスを入れるということを覚えていると、スマートに管理できると思います。

gitignore thumb

役に立ったらシェアしよう!