我正在尝试使用用户/密码(BasicAuth)执行一组 git clone 操作,它运行正常,但在某些时候它会因错误而停止。
- 我正在使用
git.PlainClone(...)
+http.BasicAuth{}
。 - 我尝试了几个具有相同结果的文件夹。我收到类似的消息,但每次运行都不同:
error: mkdir /tmp/foo/.git/refs/remotes/origin/addusers: not a directory
. - 它适用于开放的 Git 存储库。
这是代码:
import (
"fmt"
"log"
"os"
git "github.com/go-git/go-git/v5"
"github.com/go-git/go-git/v5/plumbing/transport/http"
)
func main() {
Info("git clone https://bitbucket.org/mycompany/some-repo.git")
_, err := git.PlainClone("/tmp/foo", false, &git.CloneOptions{
URL: "https://bitbucket.org/mycompany/some-repo.git",
Progress: os.Stdout,
Auth: &http.BasicAuth{Username: "my user", Password: "my password"},
})
CheckIfError(err)
}
func CheckIfError(err error) {
if err == nil {
return
}
fmt.Printf("\x1b[31;1m%s\x1b[0m\n", fmt.Sprintf("error: %s", err))
os.Exit(1)
}
func Info(format string, args ...interface{}) {
log.Printf("\x1b[34;1m%s\x1b[0m\n", fmt.Sprintf(format, args...))
}
错误:
$ go run main.go
2021/06/14 16:03:02 git clone https://bitbucket.org/mycompany/some-repo.git
error: open /tmp/foo/.git/refs/remotes/origin/Secret: is a directory
exit status 1
$ go run main.go
2021/06/14 16:06:05 git clone https://bitbucket.org/mycompany/some-repo.git
Counting objects: 196484, done.
Compressing objects: 100% (72375/72375), done.
Total 196484 (delta 138772), reused 173972 (delta 123792)
error: mkdir /tmp/foo/.git/refs/remotes/origin/addusers: not a directory
exit status 1