我们有一个新项目,我们将它托管在我们自己的Gitlab服务器中。我从
克隆了它git@git.myacme.com:webapplication/app.git
成功。
我们说gitlab中的用户名是scott@myacme.com。
我们在Github也有一个现有项目,我使用的用户名是scott@yahoo.com
在新项目中,我们在package.json中有一个指向现有项目的条目。记下https
https://github.com/myacme/system-application.git
现在,当我执行npm install时,它在尝试拉取github.com中的现有项目时失败。它说无效的用户名或密码....身份验证失败。我认为它仍然使用scott@myacme.com而不是scott@yahoo.com
我不允许更改package.json。我正在考虑将其更改为git链接而不是https,但我会影响其他开发人员。如果我这样做,我认为它将使用我放在.ssh / config中的设置。我添加了2个主机,我们的myacme.com和github.com
这是什么解决方法?我尝试使用我的雅虎电子邮件地址设置git config global user.name和user.email,但它仍未使用它。我没有想法。
这是npm-debug.log文件中的确切错误
515 error git clone --template=/Users/scott/.npm/_git-remotes/_templates --mirror https://github.com/myacme/system-application.git /Users/scott/.npm/_git-remotes/https-github-com-myacme-system-application-git-0be15bdd: remote: Invalid username or password.
515 error git clone --template=/Users/scott/.npm/_git-remotes/_templates --mirror https://github.com/myacme/system-application.git /Users/scott/.npm/_git-remotes/https-github-com-myacme-system-application-git-0be15bdd: fatal: Authentication failed for 'https://github.com/myacme/system-application.git/'
答案 0 :(得分:1)
user.name不用于使用https进行身份验证,仅在进行提交时使用(对于作者/提交者名称)
你能做的是:
对于该GitHub仓库,使用ssh而不是https(不更改源中的任何内容)。
请参阅" How do I get git to default to ssh and not https for new repositories"
git config --global url.ssh://git@github.com/.insteadOf https://github.com/
在该GitHub仓库中注册您的公共ssh密钥(或至少in your GitHub account)
这样,git clone
将在GitHub上使用已知身份验证(您的 GitHub scott
帐户,因为它具有正确的ssh公钥。)