【.gitignore】パスの指定方法、反映しない場合の対処など

プログラミング

この記事は、.gitignoreに関連する個人的メモです。

パスの指定

# hoge.txtを無視する
hoge.txt
 
# hogeディレクトリを無視する
hoge/
 
# hogeディレクトリを無視する
/hoge/

最初に「/」をつけるかどうかで無視されるディレクトリが変わる。

最初に/がついていれば、.gitignoreからの相対パスで指定されたディレクトリが無視される。最初に/がついていなければ、全てのディレクトリを探して、指定されたディレクトリが無視されるようになる。

ワイルドカードと否定

# .txtの全てのファイルを無視する
*.txt

# hogeディレクトリを無視しない
!temp/

*は全て、!は否定で使うことが出来る。直感通りの動作。?とか[0-9]とかも使える。

参考:https://qiita.com/anqooqie/items/110957797b3d5280c44f#%E3%82%A8%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%97

特定ディレクトリ内の特定の拡張子ファイル

# hoge内の .txtファイルを無視する
hoge/**/*.txt

.gitignoreを編集したが、反映されない時

.gitignoreに記載したのに、その編集内容が反映されない場合の、原因と解決策。

原因

一度gitにアップしたものを、.gitignoreに追加したことが原因だった。要するに編集前にcommitしてpushしちゃったもの。
どうやら、キャッシュにインデックスが残っているのために、.gitignoreの設定が反映されていなかったよう。

解決策

手順

  1. .gitignore 編集
  2. キャッシュを削除
  3. commit & push

キャッシュの削除

# ファイル全体キャッシュ削除
$ git rm -r --cached .
# ファイル指定してキャッシュ削除
$ git rm -r --cached [ファイル名]

上記のコマンドを実行する。
ファイル全体キャッシュ削除が確実。ファイル指定での削除をわざわざ行う場面がまだ思いついていない。

参考

[Git] .gitignoreの仕様詳解 - Qiita
対応バージョン この記事の内容は、少なくともGitのバージョン2.19.1までは対応している。 もし最新のGitで新しい動きがあれば随時更新する。 基本 .gitignoreを使うと無視する(Gitのトラッキングの対象外と...
[Git] .gitignoreの仕様詳解 - Qiita
対応バージョン この記事の内容は、少なくともGitのバージョン2.19.1までは対応している。 もし最新のGitで新しい動きがあれば随時更新する。 基本 .gitignoreを使うと無視する(Gitのトラッキングの対象外と...

コメント

タイトルとURLをコピーしました