我正在尝试通过调用 git 来克隆一个 git 存储库syscall。(我知道有git2go但这不是我想要的。我绝对想做一个syscall)git, lookErr := exec.LookPath("git")if lookErr != nil { fmt.Fprintf(os.Stderr, "%s\n", lookErr) os.Exit(126)}args := []string{"clone", "http://github.com/some/repo.git"}var env = os.Environ()execErr := syscall.Exec(git, args, env)if execErr != nil { panic(execErr)}所以我想要执行的是git clone http://github.com/some/repo.git手动执行这个工作就好了。但是当我像上面的代码片段一样在 go 中运行它时,git 失败了:git: ' http://github.com/some/repo.git ' 不是 git 命令。参见'git --help'。为什么 git 会将第二个参数解释为另一个命令?它应该是远程<repo>URL,git clone [options] [--] <repo> [<dir>].如何正确传递参数以便 git 具有预期的行为?
1 回答
- 1 回答
- 0 关注
- 195 浏览
添加回答
举报
0/150
提交
取消