代码之家  ›  专栏  ›  技术社区  ›  zero

Git使用错误的电子邮件进行推送

  •  2
  • zero  · 技术社区  · 7 年前

    我的笔记本电脑上有两个github帐户——用于工作和个人项目。

    我的问题是,出于某种奇怪的原因,git现在在推送一个个人项目时使用我的工作电子邮件,但当我在个人项目的根目录中运行以下代码进行检查时:

    git config user.email
    

    打印出来的邮件是我的个人项目!

    remote: Permission to personal_github_username/personal_project.git denied to work_github_username
    fatal: unable to access 'https://github.com/personal_github_username/personal_project.git/': The requested URL returned error: 403
    

    还有一件奇怪的事情:我可以使用githubwindows客户机推送,但不能使用gitgui推送。

    2 回复  |  直到 7 年前
        1
  •  6
  •   torek    7 年前

    太长,读不下去了

    资格证书 . 从…开始 VonC's answer here .

    请特别注意此处的URL:

    ... 无法访问' https://github.com/...

    从这个开始: git push user.email ! 它使用您提供的URL,通常通过一个远程名称,如 origin :有一个设置, remote.origin.url ,它保存URL。

    ssh:// https:// . 在双斜杠是主机名之后,从技术上讲,这可以包括 user:password@host.dom.ain 但不要那样做,最多只能投入 user@host.dom.ain 然后提供字符串的其余部分 那个主人。或者,你可以用 git@github.com:path/to/repo ssh://git@github.com/path/to/repo .

    https ,Git将从 凭证帮助程序 . Git使用的特定凭证助手取决于很多事情。按顺序,最重要的是这两个:

    • store cache 帮手。

    • 你使用的是什么版本的Git?几乎所有的现代版本都比古代版本好得多,但仍有一些古老的(1.7和1.8早期)Git版本仍在使用中。

    凭据帮助程序 使用HTTPS时,请参阅 Is there a way to skip password typing when using https:// on GitHub?

    还有一件奇怪的事情:我可以使用githubwindows客户机推送,但不能使用gitgui推送。

    这意味着您正在使用Windows(我避免…)。显然,他们的githubwindows客户机使用的凭证助手与Git GUI不同。

    ssh://git@github.com/... . 当使用SSH时,GitHub最终会查找 公钥 谁在连接 ,然后使用它来决定您是谁以及是否可以访问该存储库。

    那在哪里 你的 习惯了吗?

    一旦您的Git获得授权并成功地与GitHub上的另一个Git通信,您的Git就会推送 提交 . 在你跑步之前的某个时刻,你已经做出了承诺 git推送 包含从 user.name 用户电子邮件 设置。

    git commit ,不是 git推送 ,使用 设置。这些只是配置设置,而不是凭据。

    git推送 用户电子邮件 设置。你现在所做的一切不再重要了。当且仅当您推送一些使用其设置的提交时,您在过去设置的内容才起作用。

        2
  •  0
  •   rafaelasguerra    6 年前

    很有趣。好的,让我们试着重做你的设置。 按以下步骤设置所有git的默认用户信息。

    $ git config --global user.name "John Doe"
    $ git config --global user.email john.doe@gmail.com
    

    现在转到您的work git并使用--local标记覆盖全局设置,以便对于特定的项目,它使用您的工作信息(注意:对于每个work git,您必须这样做):

    $ git config --local user.name "John Doe"
    $ git config --local user.email john.doe@work.com
    

    推荐文章