Fixing Git commit, as far as it should work as git commit -a.

In order to maintain the same behavior between mercurial and git, the commit should do a "git commit -a" but it was not.

I thought in implement it as optional, but mercurial does not have an index, so I've had to implement one for it and I think it is too much work right now.

So, now it works as documentation said it should.
If `allow_empty`, then this should create the commit, a `not` is still missing here.