试图从我的电脑上完成我实际的“工作”回购,以及我在GitHub上的回购。

工作账户是先建立的,一切都完美无缺。

然而,我的账户似乎无法推送到我的回购,这是在另一个账户/电子邮件下设置的。

我尝试将我的工作密钥复制到我的帐户,但这抛出了一个错误,因为密钥当然只能附加到一个帐户。

我如何用各自的GitHub凭证推/拉两个帐户?


当前回答

更简单和容易修复,以避免混乱..

Windows用户可以为不同的项目使用多个或不同的git帐户。

以下步骤: 进入控制面板,搜索凭据管理器。 然后转到凭证管理器-> Windows凭证

现在在Generic Credentials Heading下删除git:https//github.com节点

这将删除当前凭据。现在你可以通过git添加任何项目,它会要求用户名和密码。

当你遇到任何问题与其他帐户做同样的过程。

其他回答

使用HTTPS:

将远程url更改为https:

git remote set-url origin https://USERNAME@github.com/USERNAME/PROJECTNAME.git

你可以开始了:

git push

为了确保提交显示为USERNAME执行,可以设置user.name和user。为这个项目发送电子邮件:

git config user.name USERNAME
git config user.email USERNAME@example.com

使用个人访问令牌的个人目录.gitconfig

如果您不想修改您的主机文件,使用SSH密钥,或者为每个repo设置一个.gitconfig,那么您可以使用一个个人的.gitconfig,它基本上包含在根级配置中。给定一个OSX目录结构

# root level git config
~/.gitconfig

# your personal repos under some folder like
../personal/
../home/
~/Dropbox/

在你的个人文件夹中添加一个.gitconfig,比如~/Dropbox/.gitconfig

[user]
    email = first.last@home.com
    name = First Last
[credential]
    username = PersonalGithubUsername
    helper = osxkeychain

在根级.gitconfig中添加includeIf部分,以便在您的个人目录中获取您的个人配置。这里的任何设置都将覆盖根配置,只要includeIf出现在您想要覆盖的设置之后。

[user]
    email = first.last@work.com
    name = "First Last"
[credential]
    helper = osxkeychain
[includeIf "gitdir:~/Dropbox/**"]
    path = ~/Dropbox/.gitconfig

尝试推动你的个人回购或从你的私人回购

git push
# prompts for password

当出现提示时,输入您的个人密码,或者最好输入您在帐户开发人员设置中创建的个人访问令牌。输入该令牌作为密码。

假设你已经在使用git-credential-osxkeychain,你的个人凭证应该存储在你的钥匙链中,所以两个github条目将显示,但使用不同的帐户。

如果你碰巧安装了WSL,你可以有两个独立的git帐户——一个在WSL上,一个在windows上。

有很多答案解释如何完成你的要求,但我想提供一个不同的角度。

我认为把工作和个人事情分开是有道理的。在所有操作系统上切换用户帐户是非常简单的,所以你可以为工作和娱乐创建单独的操作系统帐户,并在每个操作系统中登录不同的github帐户。

保持清晰的关注点分离也可以……

防止你的工作文件和个人文件混在一起 降低对错误资源执行操作的风险 可能会将安全漏洞限制在一组帐户/凭据上

只要在你最喜欢的编辑器中添加这一行,你就完成了一生

git remote set-url origin https://user-token-of-particular-user@github.com/profile-name/repo-name