exec.Command(name, arg...) создает команду; Start/Run/Wait для запуска. Run ждет завершения; Output - запуск и возврат stdout. Контекст для таймаута и отмены: exec.CommandContext(ctx, name, arg...). Важно: не подставлять пользовательский ввод в аргументы без экранирования (безопасность). StdinPipe, StdoutPipe для передачи данных.
cmd := exec.CommandContext(ctx, "git", "clone", url)
cmd.Dir = "/tmp"
out, err := cmd.Output()