「Gitの基礎 - GitIgnore」の版間の差分

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動
58行目: 58行目:


== 備考 ==
== 備考 ==
<code>>git add</code>コマンドを使用してインデックスに登録、または、コミット済みのファイルが存在する場合、<br>
<code>git add</code>コマンドを使用してインデックスに登録、または、コミット済みのファイルが存在する場合、<br>
.gitignoreファイルは、該当ファイルを無視しない。<br>
.gitignoreファイルは、該当ファイルを無視しない。<br>
<br>
<br>

2023年3月23日 (木) 02:32時点における版

概要

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

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



備考

git addコマンドを使用してインデックスに登録、または、コミット済みのファイルが存在する場合、
.gitignoreファイルは、該当ファイルを無視しない。

もし、上記のようなファイルを無視する場合は、git rmコマンドを実行する。

git rm <ファイル名またはディレクトリ名>
# または
git rm --cached <ファイル名またはディレクトリ名>


  • --cachedオプションを付加する場合
    該当ファイルまたは該当ディレクトリをワーキングツリーから削除しない。

  • --cachedオプションを付加しない場合
    該当ファイルまたは該当ディレクトリをワーキングツリーから削除する。
    例えば、コンパイルの生成物を誤ってインデックスに登録した場合や削除する予定のデバッグ用ファイル等を誤ってインデックスに登録した場合等に使用する。