In this case, this is exactly what you would want. Why would you want to keep this file in version control for everyone else? Consider this...
address@hidden ~/src/emacs-dev $ git checkout -b test
Switched to a new branch 'test'
address@hidden ~/src/emacs-dev $ echo "moo" >> test_file
address@hidden ~/src/emacs-dev $ git status
# On branch test
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# test_file
nothing added to commit but untracked files present (use "git add" to track)
address@hidden ~/src/emacs-dev $ git add test_file
address@hidden ~/src/emacs-dev $ git status
# On branch test
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: test_file
#
address@hidden ~/src/emacs-dev $ git commit -m "adding test file"
[test dde69ae] adding test file
1 file changed, 2 insertions(+)
create mode 100644 test_file
address@hidden ~/src/emacs-dev $ git status
# On branch test
nothing to commit, working directory clean
address@hidden ~/src/emacs-dev $ git rm --cached test_file
rm 'test_file'
address@hidden ~/src/emacs-dev $ git status
# On branch test
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# deleted: test_file
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# test_file
address@hidden ~/src/emacs-dev $ git commit -am "removing test file"
[test 46f7f53] removing test file
1 file changed, 2 deletions(-)
delete mode 100644 new_file
address@hidden ~/src/emacs-dev $ git status
# On branch test
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# new_file
nothing added to commit but untracked files present (use "git add" to track)
This is the same situation as a merge conflict in a file that you dont want to keep in the remote git repo.. You need to remove it from the index and keep it locally.