Are you sure? It seems to work as I thought it would.
$ git init
Initialized empty Git repository in /tmp/jnareb/test/.git/
[master!test]$ echo foo >foo
[master!test]$ echo bar >bar
[master!test]$ echo bar >.gitignore
[master!test]$ git add .
[master!test]$ git commit -m Initial
[master (root-commit) 522267b] Initial
2 files changed, 2 insertions(+), 0 deletions(-)
create mode 100644 .gitignore
create mode 100644 foo
[master!test]$ git add -f bar
[master!test]$ git commit -m 'Add bar (ignored)'
[master a708f70] Add bar (ignored)
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 bar
[master!test]$ echo foo >>foo
[master!test]$ echo bar >>bar
[master!test]$ git status -s
M bar
M foo
[master!test]$ git update-index --assume-unchanged bar
[master!test]$ git status -s
M foo
[master!test]$ git commit -a -m "assume-unchanged bar, both changed"
[master ec74f8e] assume-unchanged bar, both changed
1 files changed, 1 insertions(+), 0 deletions(-)
[master!test]$ git status -s
[master!test]$ git show
commit ec74f8e3f3f819bba22453324d7659fe8dd253e8
Author: Jakub Narebski <jnareb@gmail.com>
Date: Fri Jul 29 44 2011 +0200
assume-unchanged bar, both changed
diff --git a/foo b/foo
index 257cc56..0d55bed 100644
--- a/foo
+++ b/foo
@@ -1 +1,2 @@
foo
+fooNotice that change to 'bar' didn't get comitted.