Gitの基礎 - GitIgnore

2023年3月23日 (木) 00:09時点におけるWiki (トーク | 投稿記録)による版 (ページの作成:「== 概要 == .gitignoreファイルは、Gitのトラッキングの対象外とするファイルおよびディレクトリを指定するファイルである。<br> <br> .gitignoreファイルは複数のディレクトリに配置することができ、より深い階層にある.gitignoreファイルの方が優先順位が高くなる。<br> <br><br> == .gitignoreファイルの基本 == * ファイル名およびディレクトリ名のみ(/を含まない…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

概要

.gitignoreファイルは、Gitのトラッキングの対象外とするファイルおよびディレクトリを指定するファイルである。

.gitignoreファイルは複数のディレクトリに配置することができ、より深い階層にある.gitignoreファイルの方が優先順位が高くなる。


.gitignoreファイルの基本

  • ファイル名およびディレクトリ名のみ(/を含まない)
    .gitignoreファイル以下の全てのサブディレクトリ下にあるこの名前のファイルおよびディレクトリを無視する。

  • 末尾以外にのみ/を含む場合 (/file、/path/to/file、path/to/file等)
    .gitignoreファイルが存在するディレクトリをカレントディレクトリとする相対パスで指定されるファイルおよびディレクトリを無視する。

  • 末尾のみ/がある場合 (directory/等)
    .gitignoreファイル以下の全てのサブディレクトリ下にあるこの名前のディレクトリを無視する。

  • 末尾および末尾以外にも/を含む場合 (/directory/、/path/to/directory/、path/to/directory/等)
    .gitignoreファイルが存在するディレクトリをカレントディレクトリとする相対パスで指定されるディレクトリを無視する。

  • !で始まる場合 (!/path/to/file等)
    !以降のパターン文字列が示すファイルおよびディレクトリを無視しない。
    前の無視指定を上書きする。
    以降の無視指定に上書きされる。

  • 空行または#で始まる場合
    解釈されない。(#はコメントと見なされる)


.gitignoreファイルと同階層のディレクトリにあるfileのみを無視する場合は、/fileと記述する。

また、Gitリポジトリのルート、あるいは、OSのルートからの絶対パス指定をすることはできない。
.gitignoreファイルは、それ以降のディレクトリにのみ影響を及ぼす。


ワイルドカード

.outという拡張子のファイルをまとめて無視したい場合*.outのように記述できる。

  • *
    /以外の0文字以上の文字列にマッチする。

  • ?
    /以外の1文字にマッチする。

  • [0-9]
    /以外の指定した1文字にマッチする。

  • **
    0個以上のファイル、または、ディレクトリにマッチする。
    /a/**は、/a、/a/x、/a/x/y等にマッチする。
    /**/bは、/b、/x/b、/x/y/b等にマッチする。
    /a/**/bは、/a/b、/a/x/b、/a/x/y/b等にマッチする。



エスケープ

.gitignoreファイルでは、、\(バックスラッシュ)を使用して、特殊文字をエスケープすることができる。

  • #文字をエスケープする
    \#*#