この記事は、.gitignore
に関連する個人的メモです。
パスの指定
# hoge.txtを無視する
hoge.txt
# hogeディレクトリを無視する
hoge/
# hogeディレクトリを無視する
/hoge/
最初に「/」をつけるかどうかで無視されるディレクトリが変わる。
最初に/
がついていれば、.gitignore
からの相対パスで指定されたディレクトリが無視される。最初に/
がついていなければ、全てのディレクトリを探して、指定されたディレクトリが無視されるようになる。
ワイルドカードと否定
# .txtの全てのファイルを無視する
*.txt
# hogeディレクトリを無視しない
!temp/
*
は全て、!
は否定で使うことが出来る。直感通りの動作。?
とか[0-9]
とかも使える。
特定ディレクトリ内の特定の拡張子ファイル
# hoge内の .txtファイルを無視する
hoge/**/*.txt
.gitignoreを編集したが、反映されない時
.gitignore
に記載したのに、その編集内容が反映されない場合の、原因と解決策。
原因
一度git
にアップしたものを、.gitignore
に追加したことが原因だった。要するに編集前にcommit
してpush
しちゃったもの。
どうやら、キャッシュにインデックスが残っているのために、.gitignore
の設定が反映されていなかったよう。
解決策
手順
.gitignore
編集- キャッシュを削除
commit
&push
キャッシュの削除
# ファイル全体キャッシュ削除
$ git rm -r --cached .
# ファイル指定してキャッシュ削除
$ git rm -r --cached [ファイル名]
上記のコマンドを実行する。
ファイル全体キャッシュ削除が確実。ファイル指定での削除をわざわざ行う場面がまだ思いついていない。
参考
[Git] .gitignoreの仕様詳解 - Qiita
対応バージョンこの記事の内容は、少なくともGitのバージョン2.19.1までは対応している。もし最新のGitで新しい動きがあれば随時更新する。基本.gitignoreを使うと無視する(Git…