首页 > 解决方案 > 使用非贡献者帐户推送

问题描述

您好,我对 git-hub 有点陌生,所以我不明白:
我是存储库的所有者,我尝试创建一个新的 git 帐户,然后在我的机器中调整了全局用户和电子邮件(其中有存储库所有者的帐户)并尝试推送到存储库。它在没有将新帐户添加为贡献者的情况下工作,并且没有提示我输入用户名和密码,这很奇怪。提交是使用非贡献者帐户的名称进行的,据我所知,只有贡献者可以进行更改,所以我问是否有一些我不理解或不应该知道的东西,因为我可能会在一个共享电脑,我不想在上面留下那种特权。

标签: gitgitlab

解决方案


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

大多数托管服务提供商允许您推送包含任何作者、提交者和标记者值的提交和标签。这是因为有一些项目,比如 Git 本身,工作流发生在邮件列表中,因此作者和提交者是两个不同的人,只有后者可以访问相关存储库。人们从其他分支中挑选补丁甚至只是提交其他同事的工作也很常见,在这种情况下,提交中列出的任何人都可能无法访问相关存储库。

因此,在这种情况下,听起来您的user.nameuser.email值已设置为新帐户,但您使用旧凭据推送到项目。如果是这种情况,并且您想使用新凭据,则应在使用 SSH 时为新帐户创建新的 SSH 密钥,或者在使用 HTTPS 时更新远程 URL 以包含用户名,其中案例 Git 会提示您输入新密码。

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

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

推荐阅读