Subverting hierarchy with Git
joeyh.name
joeyh.name
I like git-annex and Joey Hess has done an admirable job continually improving it.
But I'm still only partially satisfied with my setup. I actually think this kind of problem probably does need to be solved at the filesystem layer if you want a great user experience. I hope something like bazil.org matures soon.
There is also a Web-App called "assistant": http://git-annex.branchable.com/assistant/
You can support the author here: https://campaign.joeyh.name/