我使用git凭据( user.name= venkat
和user.email=venkat@gmail.com
)在项目A上工作,并成功完成。
我开始了我的新项目B.
为此,我创建了我的登录凭据( user.name= venkat-yahoo
和user.email=venkat@yahoo.com
)并添加了带有新凭据的ssh。
使用新邮件生成的ssh很好但是当我第一次推送到GitHub时,它会被我的旧user.email / name推送。
我使用凭据进行了检查,结果是旧凭据:
myvenkat@myvm:~/Desktop/project/ProjectB/projectB-master$ git config --list
user.name= venkat
user.email=venkat@gmail.com
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
remote.origin.url=git@github.com:xxxxx/ProjectB.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
从旧凭据完成第一次推送,现在我想从新凭据推送所有内容。怎么做?
答案 0 :(得分:1)
您需要更改本地配置才能使用新名称/电子邮件
git config user.name venkat-yahoo
git config user.email venkat@yahoo.com
git config -l
这与你将用于推送到GitHub的ssh无关。
为此,您需要设置~/.ssh/config
文件以指示git使用正确的ssh密钥。
Host githubyahoo github
HostName github.com
User git
IdentityFile "~/.ssh/github_yahoo_rsa"
并更改远程repo url:
git remote set-url origin githubyahoo:<user>/<repo>
同样,user.name
和user.email
与GitHub身份验证(使用新的ssh密钥)无关。
它们与您的提交相关的作者/提交标识有关
该用户名在每次提交时都是可见的,这可能就是“用旧的user.email / name推送它”的意思。
但你可以很好地推送使用GitHub帐户Y(由ssh密钥引用)作为X的提交:两者(提交作者和GitHub帐户)是非常不同的概念。