【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
を配置し、それぞれに相対パスを入れるということを覚えていると、スマートに管理できると思います。
