我正在尝试从 github 获取项目的特定包。
但是,当我使用go get [url]or时go mod vendor,由于缺乏对我公司的存储库之一的权限,我收到 git fetch 错误。这个存储库是供应的,这就是我们如何绕过它进行 go test、go build 等。
这是错误消息:
go: private.work.repo.com/project/repo@v0.0.0-20190703160253-9c6eb80851f1: invalid version: git fetch -f origin refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in C:\Users\NICHOLAS.TAN\go\pkg\mod\cache\vcs\37594aeb10b98234e04b4780cf59f32c4ad7bb9da460f552103ae748cea73aa1: exit status 128:
fatal: remote error: Repository not found
The requested repository does not exist, or you do not have permission to
access it.
Run Code Online (Sandbox Code Playgroud)
有没有办法让我使用go get和/或go mod vendor不使用这些命令来尝试查看其他模块依赖项?
制作两个不同的go模块
source.cloud.google.com/me/a
source.cloud.google.com/me/b
随着source.cloud.google.com/me/common作为共同LIB依赖(共享模式)
我正在尝试go get source.cloud.google.com/me/common(甚至手动将其写入go.mod文件中),但我一直收到以下错误:
package source.cloud.google.com/me/common:
unrecognized import path "source.cloud.google.com/me/common"
(parse https://source.cloud.google.com/me/common?go-get=1: no go-import meta tags ())
Run Code Online (Sandbox Code Playgroud)
我已经gcloud设置为能够使用app deploy和创建新的源存储库。我尝试设置sshGoogle Cloud,并尝试使用手动凭据。这既不能在本地使用,也不能在Google Cloud build服务中使用。
我想做两件事:
go get依靠source.cloud.google.com/me/commongo get到我的App Engine自动构建渠道中。任何帮助,将不胜感激。
go gcloud google-cloud-source-repos google-source-repositories go-get
我克隆了git clone一个依赖于另一个私有存储库的存储库。在当前的 repo 中,我尝试使用go get该依赖项 ( go get -u ./...) 并抛出一个错误:
致命:无法读取“https://bitbucket.org”的用户名:终端提示已禁用
git clone git@my-name.bitbucket.org:company/repo.git将 repo 克隆到~/Desktop/BitBucket/Company目录。GOPRIVATE="bitbucket.org/company/*"includeIf. 如果我用公司 .gitconfig替换.gitconfig它工作正常。但是我需要管理多个帐户...git config --get user.name(在 repo 内)返回My Name. 所以有一个问题go get我的主要 .gitconfig文件(在 $HOME 目录中):
[includeIf "gitdir/i:~/Desktop/BitBucket/Company/"]
path = ~/.git/BitBucket/Company/.gitconfig
Run Code Online (Sandbox Code Playgroud)
我的.gitconfig文件(用于公司仓库$HOME/.git/BitBucket/Company/.gitconfig):
[user]
name = My Name
email = my.name@company.com
[url "git@my-name.bitbucket.org:"]
insteadOf = …Run Code Online (Sandbox Code Playgroud) 我正在尝试导入位于 AWS codecommit 中的模块。为了克隆存储库,我使用 HTTPS GRC(Git 远程代码提交)方法,该方法使用 Google Suite 凭证来访问 AWS 控制台。
我用来克隆存储库的命令是:
git clone codecommit::us-west-2://my-module
Run Code Online (Sandbox Code Playgroud)
远程模块的go.mod文件包含以下内容:
module git-codecommit.us-west-2.amazonaws.com/my-module.git
Run Code Online (Sandbox Code Playgroud)
我尝试这样配置 Git 来实现我的目标:
git config --global url."codecommit::us-west-2://".insteadOf "https://git-codecommit.us-west-2.amazonaws.com/"
Run Code Online (Sandbox Code Playgroud)
设置为私有:
go env -w GOPRIVATE=git-codecommit.us-west-2.amazonaws.com/my-module.git
Run Code Online (Sandbox Code Playgroud)
然后获取存储库:
go get -x git-codecommit.us-west-2.amazonaws.com/my-module.git
Run Code Online (Sandbox Code Playgroud)
但我得到这个输出(并且执行被卡住):
cd.
git ls-remote https://git-codecommit.us-west-2.amazonaws.com/my-module
Run Code Online (Sandbox Code Playgroud)
我想提一下,当我执行git ls-remote https://git-codecommit.us-west-2.amazonaws.com/my-module手动执行命令时,我可以毫无问题地获取分支和标签的信息。
我检查了这个主题,但在这种情况下使用 SSH 协议而不是 HTTP GRC。也许从私有存储库导入模块的唯一方法是通过 SSH?
我在同一台笔记本电脑(运行 Ubuntu 版本 20)上使用两个不同的 github 帐户(个人和工作)。我需要能够使用我的工作 github 帐户的 ssh 密钥从工作中访问私有存储库。
我已经使用一些简洁的 git 配置控件使这一切正常工作,即在我的~/.gitconfig文件中放入:
[url "git@github.com:work_account/"]
insteadOf = https://github.com/work_account/
[includeIf "gitdir:~/src/github.com/personal_account/"]
path=~/.gitconfig_personal
[includeIf "gitdir:~/src/github.com/work_account/"]
path=~/.gitconfig_work
Run Code Online (Sandbox Code Playgroud)
个人配置包含:
[user]
name = Your Name
email = your.name@gmail.com
[core]
sshCommand = ssh -i ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)
工作配置包含:
[user]
name = Your Name
email = your.name@work.com
signingkey = <ID of GPG key>
[core]
sshCommand = ssh -i ~/.ssh/id_ecdsa
[commit]
gpgsign = true
[gpg]
program = gpg
Run Code Online (Sandbox Code Playgroud)
这对于从 github 拉取和推送(并使用 gpg 密钥签署工作提交)非常有效,但在go get私人存储库上却失败了。由于某些奇怪的原因,go get …
执行时
go get bitbucket.org/../..
我收到这个错误
yash.jain projectname % go get bitbucket.org/../..
go: bitbucket.org/../..
https://api.bitbucket.org/2.0/repositories/../..?fields=scm: 403 Forbidden
go: error loading module requirements
Run Code Online (Sandbox Code Playgroud)
我尝试过的
设置 ssh 密钥(按预期工作,通过推送和拉取代码进行测试)
将 go 环境变量设置为:
GOPRIVATE=""
GOPROXY="direct"
GOSUMDB="off"
Run Code Online (Sandbox Code Playgroud)
.gitconfig 看起来像这样
[url "git@bitbucket.org:"]
insteadOf = https://bitbucket.org/
[user]
email = yash.jain@company.in
name = yashjain
Run Code Online (Sandbox Code Playgroud)
向 ssh-agent 添加密钥
ssh-add -l
ssh-add -k
Run Code Online (Sandbox Code Playgroud)
.ssh/config 文件看起来像这样
Host bitbucket.org
HostName bitbucket.org
User git
IdentityFile ~/.ssh/id_rsa
UseKeychain yes
StrictHostKeyChecking no
Run Code Online (Sandbox Code Playgroud)
尽管如此,我还是遇到了同样的错误。如果我做错了什么,请告诉我。
我发布了一个 Go 模块的更新,将版本升级到 v1.1.0。我创建了一个名为v1.1.0的标签并将该标签推送到 GitHub。
https://github.com/depp/bytesize/releases/tag/v1.1.0
但是,我不能在我的其他项目中使用这个包。我收到一条错误消息,提示“版本无效:未知修订版 v1.1.0”。我不知道为什么修订是“未知的”,因为它被标记了。
$ go get github.com/depp/bytesize@v1.1.0
go: downloading github.com/depp/bytesize v1.1.0
go get github.com/depp/bytesize@v1.1.0: github.com/depp/bytesize@v1.1.0: verifying module: github.com/depp/bytesize@v1.1.0: reading https://sum.golang.org/lookup/github.com/depp/bytesize@v1.1.0: 410 Gone
server response: not found: github.com/depp/bytesize@v1.1.0: invalid version: unknown revision v1.1.0
[Exit: 1]
Run Code Online (Sandbox Code Playgroud) go-get ×9
go ×8
go-modules ×3
git ×2
gcloud ×1
git-config ×1
github ×1
godoc ×1
govendor ×1
ssh-keys ×1