docs: function spawnGit(args) {
    //don't bother with throws, they are catched by promises
    gitCmd = gitCmd || which('git');
    assert.ok(args, 'arguments to git is mandatory');
  
    executionCount++;
    if (executionPromise) {
      executionPromise = executionPromise.then(
          createGitCmdPromise.bind(null, args),
          createGitCmdPromise.bind(null, args)
      );
    } else {
      executionPromise = createGitCmdPromise(args);
    }
  
    return executionPromise.finally(function() {
      if (--executionCount === 0) {
        executionPromise = null;
      }
    });
  }