Gitの操作対象外にするファイルを指定する
「Git」では、「ワーキングディレクトリー」にあるファイルは、すべて操作対象になります。Gitの管理対象になっていないファイルも操作対象
「Gitの管理対象になっていないファイル」は「Git」の管理対象外ですが、操作対象にはなります。隠しファイルも操作対象になります。
操作対象になるということは、「Gitの管理対象になっていないファイル」から「Gitの管理対象にするファイル」へと変更し「Git」の管理対象に変更できる、ということです。
また、「Git」は「ワーキングディレクトリー」にある「Gitの管理対象になっていないファイル」を検出する機能があります。
不必要なファイル
ユーザーは、「ワーキングディレクトリー」でファイルの編集等の作業を行います。ユーザーがファイルを編集した際、テキストエディターによっては、バックアップファイルなど新たなファイルを生成することがあります。
例えば「gedit」では、テキストファイルを編集すると、編集前のバックアップファイルを同じフォルダーに作成します。
ソフトウェアのビルドであれば、中間生成ファイルやログファイルなどが、これらのファイルの該当します。
Gitがファイルを認識する
「Git」はこのようなファイルを、新規に作成された「Gitの管理対象になっていないファイル」として認識します。「Git」から認識されているということは、「Git」から操作を行えるということです。
「Git」のコマンドによっては、ワイルドカードを利用し複数のファイルをまとめて操作対象にすることができます。
また、コマンドによっては、デフォルトですべてのファイルが対象になるコマンドもあります。
「Git」による変更履歴管理は編集前のファイルのバックアップも兼ねているので、このようなアプリが生成するバックアップファイルは不必要に感じるかと思います。
ソフトウェアのビルドであれば、ソフトウェアをビルドすれば中間生成ファイルやログファイルが生成されますし、生成されるファイルサイズの総サイズも大きいので、同様に不必要に感じるかと思います。
しかし、ワイルドカードを利用し複数のファイルをまとめて操作対象にすると、不要なファイルも操作対象になってしまいます。
かと言って、1ずつファイルの操作を行うのは面倒です。
不必要なファイルは操作対象外にしたい
そこで予め操作対象外にするファイルの指定を行っておけば、特定の不必要なファイルを「Git」の操作対象外にすることができます。ファイルの指定は、「gitignore」ファイルに記述します。
以下は「gitignore」ファイルの記述例です。
ファイル名が「.」で始まるファイルと、拡張子を持ち、かつ、「~」で終わるファイルを除外しています。
これを利用すれば、ワイルドカード等で複数のファイルを操作対象にした時、不必要なファイルを操作対象から外すことができます。
操作対象外になるファイルの状態
「Git」の操作対象外になるファイルは、「Git」の管理対象になっていないファイルだけです。すでに「Git」の管理対象になっているファイルは、「Git」の操作対象外にはなりません。
「Git」の管理対象になっているファイルが操作対象外に該当した場合、操作対象外の設定は無視されます。
もしその後そのファイルが「Git」の操作対象外になった時は、操作対象外になります。
例外の指定について
「Git」の操作対象外にするファイルの指定は、ワイルドカードを利用して指定することができます。ワイルドカードを利用して指定すると、広範囲のファイルを一度に操作対象外にすることができます。
例えば「*.txt」と指定すると、拡張子が「txt」のファイルをすべて操作対象外に指定することができます。
都合が悪いこともある
しかし、操作対象外に該当するファイルの中から特定のファイルを操作対象外から外したい場合、ワイルドカードを利用した指定方法では都合が悪いことがあります。例えば、「inst.txt」は操作対象にしたい場合です。
この状況に対応するため、ワイルドカードを利用せず操作対象外にするファイルを指定するとなると、操作対象外にするファイルを1つずつ指定することになります。
この方法は効率が悪く、ファイルの指定も煩雑になります。
記述ミスや記述漏れの原因にもなります。
例外を指定する
このような状況でも簡単に対応できるように、操作対象外に該当するが操作対象にする例外の指定を行うことができます。この例外も、「gitignore」ファイルに記述します。