If our setters in commands are going to fail-fast about single-execution, we should fail-fast here too about a null pointer being passed in for Repository.  NPE right away in the constructor rather than deferred:

  Git git = new Git(null);
  git.commit().setMessage("Test").call()

We should NPE on the first line of that, not the second.