在GIT中,"git config user"和GitHub账户的实际凭据有什么区别
In GIT, what is the difference between "git config user" and the actual credentials of GitHub account
我已经阅读了这个 上的内容,但我还是不太清楚。基本上,据我所知,我可以使用 as git config user.name
和 git config user.email
任何我想要的,不管我使用的是真实的 GitHub 帐户(其中询问我的凭据我第一次做 git push
).
此外,在 GitHub 提交中,它显示 user.name
而不是实际 GitHub 帐户的用户名。所以重点是,它们之间有什么区别? git config user.name
和 git config user.email
有什么意义?
Github 基本上只是托管一个 git 服务器。 github 凭据使 github 知道您有权实际推送到 git 服务器,然后 user.name
和 user.email
使实际git 服务器知道将您的提交显示为什么。
这只是两件事。它们相互关联的唯一原因是因为 we 在 GitHub 帐户和电子邮件在提交中的用户之间建立了隐式关系(实际上这不完全正确,但稍后会详细介绍。我想说明一点)。
好的,更正式一点:是的,您的理解是正确的,您可以设置任何 user.name
和 user.email
,而不管实际的 GitHub 帐户。为什么会这样?
因为 git
在您的 .git
项目中 不关心 您托管代码的位置。它可以在 GitHub、GitLab 或 Bitbucket 上,自托管,在同一台机器上的不同文件夹中,无论何处。所有 git
关心的是对于每个提交,都有一个创建该提交的人,his/her 名字是已知的并且 his/her 电子邮件是已知的。这就是用户对 git 的意义,这就是 git 使用用户的意义(以最基本的形式)。
那么为什么要有一个 GitHub 帐户呢? 因为它只是另一个在线平台,您需要在该平台上拥有一个帐户。这与拥有 Facebook 或 Twitter 帐户没有什么不同。
这就是我们在两者之间存在 隐式 联系的原因。因为您的任何 git 项目都不关心 GitHub 或任何其他服务,并且 GitHub 不会真正抱怨您使用的电子邮件和名称。
你和我以及任何人实际上都可以 伪造 我们的 git 帐户并创建虚假提交并将它们随意推送到我们自己的 GitHub 帐户。是的,你可以这样做。您可以使用我的电子邮件和用户名,我将其用于我的提交并提交给 您的 项目。为什么是你的?因为您可以验证 您的 GitHub 帐户。你 不能 推送我的项目,除非我给你权利或者你知道我的 GitHub 帐户!
好吧,最后但同样重要的是,一开始我对你撒了一点谎。我经常说我们在两者之间有一个 隐含的 联系,但很明显,事实并非如此。更好的说法是:GitHub 与您的 git.username and git.email
关系密切,而 git
本身很少关心此类提供者。由于安全限制,我们可以看到 GitHub 与您的 git
帐户有这样的关系...
这是来自 GitHub
的部分文档
Commits will appear on your contributions graph if they meet all of the following conditions:
The email address used for the commits is associated with your GitHub account.
所以从技术上讲是的,你可以假装成其他人,但你不会从中得到任何东西。
Edit 这也是指出 git
也支持 signing commits/tags 的好时机。一种让你证明 你 是你的提交的实际作者而不是一些随机黑客的方法。你是否应该这样做是另一个问题。
我已经阅读了这个 git config user.name
和 git config user.email
任何我想要的,不管我使用的是真实的 GitHub 帐户(其中询问我的凭据我第一次做 git push
).
此外,在 GitHub 提交中,它显示 user.name
而不是实际 GitHub 帐户的用户名。所以重点是,它们之间有什么区别? git config user.name
和 git config user.email
有什么意义?
Github 基本上只是托管一个 git 服务器。 github 凭据使 github 知道您有权实际推送到 git 服务器,然后 user.name
和 user.email
使实际git 服务器知道将您的提交显示为什么。
这只是两件事。它们相互关联的唯一原因是因为 we 在 GitHub 帐户和电子邮件在提交中的用户之间建立了隐式关系(实际上这不完全正确,但稍后会详细介绍。我想说明一点)。
好的,更正式一点:是的,您的理解是正确的,您可以设置任何 user.name
和 user.email
,而不管实际的 GitHub 帐户。为什么会这样?
因为 git
在您的 .git
项目中 不关心 您托管代码的位置。它可以在 GitHub、GitLab 或 Bitbucket 上,自托管,在同一台机器上的不同文件夹中,无论何处。所有 git
关心的是对于每个提交,都有一个创建该提交的人,his/her 名字是已知的并且 his/her 电子邮件是已知的。这就是用户对 git 的意义,这就是 git 使用用户的意义(以最基本的形式)。
那么为什么要有一个 GitHub 帐户呢? 因为它只是另一个在线平台,您需要在该平台上拥有一个帐户。这与拥有 Facebook 或 Twitter 帐户没有什么不同。
这就是我们在两者之间存在 隐式 联系的原因。因为您的任何 git 项目都不关心 GitHub 或任何其他服务,并且 GitHub 不会真正抱怨您使用的电子邮件和名称。
你和我以及任何人实际上都可以 伪造 我们的 git 帐户并创建虚假提交并将它们随意推送到我们自己的 GitHub 帐户。是的,你可以这样做。您可以使用我的电子邮件和用户名,我将其用于我的提交并提交给 您的 项目。为什么是你的?因为您可以验证 您的 GitHub 帐户。你 不能 推送我的项目,除非我给你权利或者你知道我的 GitHub 帐户!
好吧,最后但同样重要的是,一开始我对你撒了一点谎。我经常说我们在两者之间有一个 隐含的 联系,但很明显,事实并非如此。更好的说法是:GitHub 与您的 git.username and git.email
关系密切,而 git
本身很少关心此类提供者。由于安全限制,我们可以看到 GitHub 与您的 git
帐户有这样的关系...
这是来自 GitHub
的部分文档Commits will appear on your contributions graph if they meet all of the following conditions: The email address used for the commits is associated with your GitHub account.
所以从技术上讲是的,你可以假装成其他人,但你不会从中得到任何东西。
Edit 这也是指出 git
也支持 signing commits/tags 的好时机。一种让你证明 你 是你的提交的实际作者而不是一些随机黑客的方法。你是否应该这样做是另一个问题。