Golang Go使用错误的URL @ Go 1.13使用git ls-remote -q失败

时间:2019-10-18 02:12:39

标签: go go-modules

根据https://github.com/golang/go/issues/34094好的,转到1.13.3解决了此问题

Env:在Windows中转到1.13

我在Windows机器上获得了Go的全新副本,并尝试在此处构建项目。

但是,以前可以正常工作的mod现已失效:

C:\xxx> go get -v private.repo.com/dir/utils.git
get "private.repo.com/dirxxxx": found meta tag get.metaImport{Prefix:"private.repo.com/dirxxxx", VCS:"git", RepoRoot:"https://private.repo.com/dirxxxx.git"} at //private.repo.com/dirxxxx?go-get=1
get "private.repo.com": found meta tag get.metaImport{Prefix:"private.repo.com", VCS:"git", RepoRoot:"https://private.repo.com.git"} at //private.repo.com/?go-get=1
go: finding private.repo.com/dirxxxx/utils.git v0.0.5
go: downloading private.repo.com/dirxxxx/utils.git v0.0.5
go: extracting private.repo.com/dirxxxx/utils.git v0.0.5
go get private.repo.com/dirxxxx/utils.git: git ls-remote -q https://private.repo.com/dirxxxx.git in C:\Users\admin\go\pkg\mod\cache\vcs\227f0870299637a3fadb469f608679095de39005c860e3949d82a547e8c30143: exit status 128:
        GitLab: The project you were looking for could not be found.
        fatal: Could not read from remote repository.

        Please make sure you have the correct access rights
        and the repository exists.

嗯,这没错,因为确实没有https://private.repo.com/dirxxxx.git

我们拥有的是https://private.repo.com/dirxxxx/utils.git。我该如何强制git使用某个标签或跳过ls-remote,因为它已经找到了一个版本并提取了文件lol


由于我正在使用私有存储库,因此我根据https://golang.org/doc/go1.13配置了GOPROXY = direct。

并按照指南设置代理和内容,但问题仍然存在。

有什么提示吗?预先感谢!

1 个答案:

答案 0 :(得分:0)

别名

如果您已将存储库从https://private.repo.com/dirxxxx.git移至https://private.repo.com/dirxxxx/utils.git,则可以在go.mod文件中使用replace directive来定义别名路径:

replace private.repo.com/dirxxxx => private.repo.com/dirxxxx/utils v0.0.5

这样,当您运行go get private.repo.com/dirxxxx时,它将从https://private.repo.com/dirxxxx/utils.git获取。

HTTPS身份验证

如果您的存储库受密码保护,则可以使用以下用户名和密码来配置git

git config --global url."https://username:password@private.repo.com/".insteadOf "https://private.repo.com/"

这样会在您的~/.gitconfig中生成一个部分,如下所示:

[url "https://username:password@private.repo.com/"]
    insteadOf = https://private.repo.com/