Any Git users out there with an opinion on the staging area? I use mercurial and find it annoying to have to fix up my working directory for a check in, and think a staging area might be nice. On the other hand in day to day running I would forget to stage a file and have lots of oops forgot to stage something commits. How does it work out in practice?