Git 使用非参与者帐户推送

Git 使用非参与者帐户推送,git,gitlab,Git,Gitlab,您好,我对git hub有点陌生,所以我不明白这一点: 我是一个存储库的所有者,我尝试创建一个新的git帐户,然后在我的机器中调整全局用户和电子邮件(其中包含存储库所有者的帐户),并尝试推送到存储库。它没有添加新帐户作为贡献者,也没有提示我输入用户名和密码,这很奇怪。提交是以非贡献者帐户的名称进行的,据我所知,只有贡献者才允许进行更改,因此我想问是否有我不了解或应该知道的事情,因为我可能在共享pc上工作,我不想在它上留下这种特权 这里有两套独立的标识。其中之一是user.name和user.em

您好,我对git hub有点陌生,所以我不明白这一点:

我是一个存储库的所有者,我尝试创建一个新的git帐户,然后在我的机器中调整全局用户和电子邮件(其中包含存储库所有者的帐户),并尝试推送到存储库。它没有添加新帐户作为贡献者,也没有提示我输入用户名和密码,这很奇怪。提交是以非贡献者帐户的名称进行的,据我所知,只有贡献者才允许进行更改,因此我想问是否有我不了解或应该知道的事情,因为我可能在共享pc上工作,我不想在它上留下这种特权

这里有两套独立的标识。其中之一是
user.name
user.email
,它们是作为作者、提交人和标记人值存储在提交中的个人名称(而不是用户名)和电子邮件地址。这些值在执行
git show
git log
时显示。另一个是用于推送到托管提供商(如GitHub或GitLab)的凭据和用户名。这两组标识是完全独立的

大多数宿主提供程序允许您推送包含任何作者、提交者和标记者值的提交和标记。这是因为有些项目,例如Git本身,工作流发生在邮件列表上,因此作者和提交人是两个不同的人,只有后者可以访问所讨论的存储库。人们通常会从其他分支机构挑选补丁,甚至只是提交其他同事的工作,在这种情况下,提交列表中的任何人都可能无法访问相关的存储库

因此,在本例中,您的
user.name
user.email
值被设置为新帐户,但您使用的是旧凭据来推送到项目。如果是这种情况,并且您希望使用新凭据,那么您应该为新帐户创建一个新的SSH密钥(如果您使用SSH),或者更新远程URL以包含用户名(如果您使用HTTPS),在这种情况下,Git将提示您输入新密码

对于HTTPS,如果您的遥控器是
https://github.com/git/git.git
如果您想将其更改为使用account
bk2204
,您可以这样写:

$ git remote set-url origin https://bk2204@github.com/git/git.git

因此,从我的理解来看,user.name和user.email更多的是计算机的标识,而不是邮件,也就是有访问权限的电子邮件,im使用http链接,那么我应该如何更新我的凭据?无提示密码只在Ubuntu上的windows上出现,我会被提示输入我的id/passCorrect
user.name
user.email
是在
git show
git log
中显示为Author和Committer字段的内容;它们与身份验证完全无关。我已经用一个例子更新了正文,向您展示了如何配置遥控器。