I also like open() and wrap() because they express nicely the side-effects (you would not expect any git repo creation in this case). I like them as static methods (and not as commands) because there is no real equivalent for such op's in native git command line.

But when you really want to create a new git repo in an empty dir on the filesystem I think going through git.init()... is quite consistent - that's what I would do with native git. Therefore I personally would like to add a check to open() to make sure the repo does not yet exist.

I'll suggest something like that in a new change