更新一个新的项目时报的错误:

1
2
3
fatal: could not read Username for 'https://git.xxx.com': terminal prompts disabled
Confirm the import path was entered correctly.
If this is a private repository, see https://golang.org/doc/faq#git_https for additional information.

造成错误的原因是这是让 golang 拉取一个私有库里的 package, 因为用的地址是 https://https://git.xxx.com, 那么就会被代码库给拦截掉

解决方法也简单, 就是拉取的时候带上鉴权方式

第一种, 全局设置密码 这个非常不推荐

1
git credential-manager-core config --global credential.username '你的用户名' --global credential.password '你的密码'

第二种, 请求时把 https://git.xxx.com 转成ssh 请求 git@git.xxx.com

1
git config --global url."git@github.com:".insteadOf "https://github.com"

输入后, 可以查看全局配置文件中多了一行配置

1
2
3
4
cat ~/.gitconfig

[url "git@git.xxx.com:"]
	insteadOf = https://git.xxx.com/

之后就恢复正常了

参考: 使用 go get 或 go mod download 在私人儲存庫遇到 fatal: could not read Username for ‘https://github.com’: terminal prompts disabled