gpt4 book ai didi

git - 使用备用帐户在 GitHub 上共享项目

转载 作者:行者123 更新时间:2023-12-02 14:20:11 26 4
gpt4 key购买 nike

我正在尝试在 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 key 对,并将其添加到 GitHub 上 alt 帐户的 SSH key 中。我还在我的 ~/.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 帐户的电子邮件和名称。完成所有这些之后,我尝试添加一个新的 Remote 并使用 git bash 推送它:
git remote add origin git@github-alt:alt/project.git
git push -u origin master

哪个确实将提交推送到存储库...作为我的 主要 帐户,不是我的 alt 帐户 .

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

最佳答案

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

但这不会修改现有提交的作者。到目前为止所做的提交有 主要 关联的用户名。在整个提交历史中更改用户名需要 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/*'

关于git - 使用备用帐户在 GitHub 上共享项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39088209/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com