すたらブログ

文系Webプログラマの備忘録

Git: バージョン管理の対象から外したいファイルを「.gitignore」に記述する

最終更新:

目次


「.gitignore」の基本

キャッシュファイルなど、バージョン管理の対象から外したいファイルは.gitignoreに記述します。
.gitignoreを設置した階層からそれ以降の階層にかけて有効になります。

(.gitignoreの記述例)

# 「.AppleDouble」フォルダを除外
.AppleDouble/

# 「.DS_Store」や「._.DS_Store」を除外
*.DS_Store

# あらゆる階層の「cache」フォルダの中身だけを除外。
# 「cache」フォルダ自体は無視しない。
# 詳しくは下記のリンクを。
**/cache/*
!.gitkeep

すでにGitの管理下にあるものを除外したい

すでに管理対象となっているファイルは、.gitignoreに記述しただけでは対象から外れません。
下記のようにコマンドラインでの操作が必要です。

(Git Bash)

# ファイルの場合
git rm --cached mfp.cache.js

# フォルダの場合 (-r を忘れずに!)
git rm --cached -r cache/

# コミットする(.gitignoreの変更をaddしてから)
git add .gitignore
git commit -m ".gitignore 除外指定を変更"

なお、下記のように一旦全てを対象から外した後に元に戻すという方法なら、個別に除外する必要はありません。
履歴は個別指定の場合と同じになるので、こちらの方がお手軽でおすすめです。

# 一旦全てを対象から外す
git rm --cached -r .

# あらためて、全てを対象に含める
# (.gitignoreに記述されたものは除外される)
git add -A .

# コミットする
git commit -m ".gitignore 除外指定を変更"

除外指定に該当するものを確認する

除外のパターンは記述したものの、実際のところどれが除外されているのかを確認したい場合。

git ls-files --others --ignored --exclude-standard

# 短縮形
git ls-files -oi --exclude-standard

上のコマンドは動画の中で解説されています。
日本語字幕もついていて、とても分かりやすいのでおすすめです。