【问题标题】:Share project on GitHub using alternate account使用备用帐户在 GitHub 上共享项目
【发布时间】:2016-08-23 12:10:55
【问题描述】:

我正在尝试在 GitHub 上共享一个项目,并希望使用 IntelliJ IDEA 的内置“在 GitHub 上共享项目”选项。当我点击它时,我被要求登录到 GitHub,我成功了,然后选择我要提交的文件,以便它们可以推送到存储库。

问题在于,虽然这确实在 GitHub 上创建了一个空存储库,但它不会推送初始提交,而是向我抛出错误:

Successfully created project 'project' on GitHub, but initial push failed: unable to access 'https://github.com/alt/project.git/': The requested URL returned error: 403

我知道这样做的原因是因为我将 git 设置为使用我的主帐户,并且我试图推送到我的 alt 帐户上的存储库。我出于自己的原因设置了一个替代帐户。失败后,我尝试使用 git bash 进行操作;我为 alt 帐户生成了一个新的 ssh 密钥对,并将其添加到 GitHub 上 alt 帐户的 SSH 密钥中。我还在我的~/.ssh/ 文件夹中创建了一个配置:

#Default GitHub
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa

#Alt GitHub
Host github-alt
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa_alt

还将 user.email 和 user.name 设置为我的 alt 帐户的电子邮件和名称。完成所有这些之后,我尝试添加一个新的遥控器并使用 git bash 推送它:

git remote add origin git@github-alt:alt/project.git
git push -u origin master

实际上将提交推送到存储库...作为我的 ma​​in 帐户,不是我的 alt 帐户

我在这里做错了什么?我想在我的 alt 帐户上在 GitHub 上共享一个项目,并使用相同的 alt 帐户向它推送提交。

【问题讨论】:

  • 您在本地提交代码之前是否设置了user.nameuser.email (用户名和电子邮件信息与提交相关联,并且在您推送这些提交时不会被修改。)
  • 是的,就是这样。在我写出这个答案后,我意识到这是问题所在,所以我把它整理出来,它现在可以工作了。这个问题现在好像没什么用了,抱歉。
  • 没有问题。在这种情况下,如果您认为它对其他人没有用处,请随时 delete your question
  • 我想有些人最终可能会遇到这个问题。不过还是谢谢。

标签: git bash github intellij-idea ssh


【解决方案1】:

git remote add origin git@github-alt:alt/project.git && git push -u origin master 命令将代码推送到与 alt 帐户关联的存储库。

但这不会修改现有提交的作者。到目前为止所做的提交都关联了 ma​​in 用户名。在整个提交历史中更改用户名需要 git history rewrite。在执行此操作之前,请确保您已备份存储库。

示例脚本:

#!/bin/sh
git filter-branch --env-filter '

OLD_EMAIL="main@sample.com"
NEW_NAME="alt"
NEW_EMAIL="alt@sample.com"

if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_COMMITTER_NAME="$NEW_NAME"
    export GIT_COMMITTER_EMAIL="$NEW_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_AUTHOR_NAME="$NEW_NAME"
    export GIT_AUTHOR_EMAIL="$NEW_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags

在验证 git 历史记录后执行强制推送。 git push --force --tags origin 'refs/heads/*'

【讨论】:

    猜你喜欢
    • 2012-09-18
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 2013-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多