Git は追跡されたファイルを無視しません
Git は、既にコミットされたファイルへの変更を無視しません。
Git ignore の目的
Git ignore は、リポジトリ内のノイズを無視します。次に例を示します。
$ git init
$ mkdir tmp
$ touch tmp/file1
$ touch tmp/file2
$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# tmp/
nothing added to commit but untracked files present (use "git add" to track)
tmp ディレクトリを無視するように .gitignore ファイルを変更した場合:
$ echo "tmp" > .gitignore
$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
nothing added to commit but untracked files present (use "git add" to track)
tmp dir の内容は表示されなくなりましたが、.gitignore ファイルは表示されます (作成したばかりで、ファイル自体は無視されないため)。
それをコミットすると、リストされている変更はありません:
$ git add .gitignore
$ git commit -v -m "addding git ignore file"
[master (root-commit) d7af571] addding git ignore file
1 file changed, 1 insertion(+)
create mode 100644 .gitignore
$ git status
# On branch master
nothing to commit (working directory clean)
.gitignore ファイルへの変更は保留中の変更として表示され、tmp ディレクトリ外の新しいファイルは未追跡ファイルとして表示され、tmp ディレクトリ内の変更は無視されます。
追跡したくないファイルをコミットしない
既に conf.php を git リポジトリに追加している場合、git はファイルを追跡しています。それが変更されると、gitは保留中の変更があることを通知します。
このような問題の解決策は、追跡したくないファイルをコミットしないことです。代わりにできることは、デフォルトのファイルをコミットすることです。
$ mv conf.php conf.php.default
$ # Edit conf.php.default to be in an appropriate state if necessary
$ git commit -v -m "moving conf.php file"
$ cp conf.php.default conf.php
これで、conf.php に加えた変更は、ステージングされていない変更として表示されなくなります。