code: func execGit(workdir string, containerName string, mounts map[string]string, gitArgs ...string) *exec.Cmd {
  	var cmd *exec.Cmd
  	if *gitContainer {
  		removeContainer(containerName)
  		args := []string{
  			"run",
  			"--rm",
  			"--name=" + containerName,
  		}
  		for host, container := range mounts {
  			args = append(args, "-v", host+":"+container+":ro")
  		}
  		args = append(args, []string{
  			"-v", workdir + ":" + workdir,
  			"--workdir=" + workdir,
  			"camlistore/git",
  			"git"}...)
  		args = append(args, gitArgs...)
  		cmd = exec.Command("docker", args...)
  	} else {
  		cmd = exec.Command("git", gitArgs...)
  		cmd.Dir = workdir
  	}
  	return cmd
  }
docs: // execGit runs the git command with gitArgs. All the other arguments are only
  // relevant if *gitContainer, in which case we run in a docker container.