gitignoreファイルの配置場所について
「gitignore」ファイルには、「Git」の操作対象外にするファイルの条件を記述します。また、操作対象外の例外にするファイルの条件も「gitignore」ファイルに記述します。
「gitignore」ファイルの配置場所は、以下の4箇所です。
- コマンドのオプションで指定
- 「ワーキングツリー」の各フォルダーに「.gitignore」ファイルを配置
- Gitディレクトリー/info/exclude
- ~/.config/git/ignore
注意
配置場所や設定により、「gitignore」ファイルのファイル名が変わります。gitignoreの読み込み順
「gitignore」ファイルの読み込み順は、上記の数値の小さい順になります。すべての「gitignore」ファイルを、数値の小さい順に読み込んでいきます。
存在しない「gitignore」ファイルは読み飛ばされます。
gitignoreの優先順位
記述した条件の優先順位は上記の数値の小さい順になります。ただし、操作対象外の条件は、上書きではなく追加になります。
優先順位に影響を受けるのは、例外の記述です。
gitignoreファイル内での優先順位
同一の「gitignore」ファイルに、操作対象外にするファイルと例外にするファイルを記述した場合、後の行に記述した条件が適用されます。例えば以下のように記述すると、「*.txt」が優先され「test.txt」は操作対象外になります。
!test.txt
*.txt
*.txt
以下のように記述すれば、「!test.txt」が優先され「test.txt」は操作対象になります。
*.txt
!test.txt
!test.txt
1.コマンドのオプションで指定
コマンドで「Git」の操作を行う際、コマンドによっては「gitignore」ファイルの指定を行うことができます。「gitignore」ファイルは、ユーザーが指定します。
またコマンドによっては、直接条件を指定できます。
一時的に操作対象外にするファイルを指定したい時に利用する
一時的に「Git」の操作対象外にするファイルを指定したい時に利用すると良いでしょう。常用や多用は混乱の元になり易いため、注意してください。
コマンドによっては、この方法で操作対象外にするファイルの指定を行うことはできません。
2.ワーキングツリーの各フォルダーに.gitignoreファイルを配置
「ワーキングツリー」の各フォルダーに「.gitignore」ファイルを作成・配置し、ファイルの条件を「.gitignore」に記述する方法です。上位フォルダーの.gitignoreファイルの内容は下位フォルダーに引き継ぐ
親フォルダーなど上位フォルダー内にある「.gitignore」ファイルの内容は、サブフォルダーなど下位フォルダーに引き継がれます。もし自分のフォルダーに「.gitignore」ファイルがあれば、自分のフォルダーにある「.gitignore」ファイルの内容が優先されます。
上位フォルダーから下位フォルダーに向かって優先順位が高くなります。
ただし、操作対象外の条件は、上書きではなく追加になります。
優先順位に影響を受けるのは、例外の記述です。
また、上位フォルダー内にある「.gitignore」ファイルで操作対象外にした下位フォルダーは、そもそも操作対象外なので、下位フォルダー内にある「.gitignore」ファイルは無視されます。
プロジェクト固有の設定に利用する
「ワーキングツリー」は「ワーキングディレクトリー」のフォルダー構造ですから、「.gitignore」ファイルは「ワーキングディレクトリー」内に配置します。「ワーキングディレクトリー」はユーザーが作業を行うフォルダーであり、「ワーキングディレクトリー」内には、プロジェクトで使用するファイル群が配置されます。
「.gitignore」ファイルを「ワーキングディレクトリー」内に配置するということは、プロジェクトの1ファイルとして配置できるということです。
従ってプロジェクト固有の設定として、「.gitignore」ファイルを利用すると良いです。
他のユーザーとリポジトリーを共有する時も利用する
他のユーザーとリポジトリーを共有し、ファイルの条件も共有したい場合、この方法を利用すると良いです。.gitignoreファイルをGitの管理対象にしておく
忘れずに「.gitignore」ファイルを「Git」の管理対象のファイルにし、コミットしておきましょう。3.Gitディレクトリー/info/exclude
「Gitディレクトリー/info/exclude」にファイルの条件を指定する方法です。このファイルに記述した条件は、そのリポジトリーにのみ適用されます。
ユーザー固有かつリポジトリー固有の設定に利用する
ユーザー固有かつリポジトリー固有の設定を行いたい時は、このファイルに条件を記述します。他のユーザーとリポジトリーを共有し、ファイルの条件も共有したい場合は、上記の「2.」の方法を採用してください。
4.~/.config/git/ignore
このファイルは、ユーザーがファイルの配置場所やファイル名を決めることができます。ファイルの配置場所の設定は、設定ファイルの「core.excludesfile」で指定します。
「core.excludesfile」が設定されていない場合、「~/.config/git/ignore」がデフォルトで使用されるファイルになります。
ユーザー固有かつ全リポジトリー共通の設定に利用する
ユーザー固有かつ全リポジトリー共通の設定を行いたい時は、このファイルに条件を記述します。ファイルの条件は、すべてのリポジトリーに適用されます。
ユーザーによって使用するテキストエディターが異なるなど、ユーザーの環境により自動的に生成されるファイルが異なります。
「gedit」なら編集前のバックアップファイル(ファイル名~)が生成されますが、別のテキストエディターでは、異なるファイル名のバックアップファイルが生成されるでしょう。
このように、ユーザーの環境に依存した条件を記述したい時に、このファイルに条件を記述すると良いです。
ファイルの使い分けについて
ファイルの使い分けのまとめです。ファイルの配置場所は4箇所ありますが、以下のように使い分けると良いでしょう。
No. | 指定方法 | 使い分け |
---|---|---|
1 | コマンドのオプションで指定 | 一時的に条件を指定したい時 |
2 | .gitignore |
|
3 | Gitディレクトリー/info/exclude | ユーザー固有かつリポジトリー固有の設定 |
4 | ~/.config/git/ignore | ユーザー固有かつ全リポジトリー共通の設定 |
条件をどのファイルに記述したらいいか分からない場合、まず「2.」と「4.」で使い分けができないか検討すると良いです。