GitHub如何知道我使用的是哪个帐户?

时间:2017-03-17 00:31:50

标签: git github

我有两个GitHub帐户,一个是我的工作,另一个是供我个人使用。我想在提交时将这两个分开。

目前,我只需更改我的GitHub凭据即可在本地系统上的不同存储库中根据是否为工作/个人存储库。一旦我进入该仓库,我就会写下以下命令来更改该帐户:

git config --global user.name "myusername"
git config --global user.email [myemail]

然后我处理我的git命令,似乎工作正常。我仍然有一些问题,因为我认为这不是处理事情的正确方法。

1)如果我在我的工作回购中将我的git用户/电子邮件更改为我的个人帐户并进行了提交,那么该提交是否会成功并转到GitHub?看起来它确实是我不明白的。 GitHub会不检查该帐户是否有权提交该回购?

2)您能否建议一种更好的方法来处理我的工作/个人帐户之间的交换,以使这两者完全分开?

谢谢!

2 个答案:

答案 0 :(得分:3)

  

如果我在我的工作回购中将我的git用户/电子邮件更改为我的个人帐户并进行提交,那么该提交是否会成功并转到github?

是的,但这会归因于错误的电子邮件地址。见Github help

  

如果您的提交未链接到任何用户,我们将显示灰色   旁边有Octocat标志

git中的每个提交都标有电子邮件地址。就GitHub而言,这可以是您喜欢的任何电子邮件地址。

This answer介绍了在本地快速切换帐户的方法。我喜欢更新每个repo的.git目录中的.git/config文件,告诉git使用哪个电子邮件:

[user]
    name = John Doe
    email = email@email.com

将其添加到您正在处理的每个存储库的.git/config文件中,git将根据每个存储库的电子邮件对您的提交进行归因。

如果您想知道 Github 如何跟踪所有这些,可以通过名为email aliases的内容完成。

答案 1 :(得分:0)

1)

Github通过您的ssh公钥识别您。如果您没有提交公钥,github会在您尝试推送代码时询问您的帐户名和密码。检查您的'设置 - > SSH和GPG密钥 - >您的github配置文件中的SSH密钥。

git config --global user.name "myusername"
git config --global user.email [myemail]

git配置内容只是告诉其他人您想要呼叫的姓名以及您希望发送的电子邮件。事实上,您甚至可以将它们留空或填写任何内容。

git config --global user.name "what ever"
git config --global user.email anyone@anysite.any

2)

您可以尝试使用不同的ssh密钥。或者简单地说,您可以在.git / config

中使用不同的电子邮件和名称

个人:

[user]
    name = your honey
    email = xxx+personal@gmail.com

工作:

[user]
    name = your reliable employee
    email = xxx+work@gmail.com