gitのbareレポジトリとnon-bareレポジトリの差

http://d.hatena.ne.jp/nishiohirokazu/20120416/1334548800
non-bareはある設定をしないとpush先として指定できない。

git config --add receive.denyCurrentBranch ignore

という設定を追加すればpush先として指定できるが、pushしたあとでpush先レポジトリを見ると、(実際はレポジトリのheadが変わっているわけだが)作業ツリーに変更が加わった状態であるかのように見える。
作業ツリー内容はpush前の状態なので、それをコミットすると『特に警告無しで作業ツリーの内容が上書きされ、pushされた内容が消える』。
もしその作業ツリーになにか修正を加えてコミットしようとすると『警告無しで作業ツリーの内容が上書きされ、本来マージする必要があるpushされた内容は消える』。