0

我有多个我正在贡献的存储库 - 有些托管在 Github 上,有些托管在 Assembla 上。从技术上讲,我的用户名在两个系统之间有所不同。

当我cd访问给定存储库的内容时,我需要知道以下内容:

  1. git知道git config user.name是谁 git config --global user.name
  2. 我是否通过 ssh 正确设置了身份验证

我发现这会git config --get user.name产生正确的信息,但是当我尝试拉取或提交时,系统会提示我输入我的用户名:

Username for 'https://github.com'

如何确保我的身份正确链接到两个 git 世界?我意识到 #1 与 SSH 密钥无关,而是提交,尽管它是我设置的一部分,所以我将其包含在此处以供参考,以了解我想要完成的工作。

4

1 回答 1

2

首先,user.name、user.email 的配置值与服务器身份验证无关(允许您推送、获取等),这些仅用于使用作者信息填充提交消息

一个认为你可以做的是创建一个 ssh 密钥对并为 assembla 和 github 使用相同的公钥。然后,当从 github 克隆存储库时,请确保使用 SSH 协议

git@github.com:username/repositoryname.git

代替

https://github.com/username/repositoryname

(汇编也一样)

如果配置正确,则不会要求您输入用户名或密码

注意: git@github.com:username/repositoryname.git 是 ssh://git@github.com:username/repositoryname.git 的简写,含义相同

注意 2:关于 git-scm 的书在这里解释了 SSH 协议(以及其他):http ://git-scm.com/book/en/Git-on-the-Server-The-Protocols,github 总是使用“git”用户名并使用 ssh 密钥识别 github 用户

于 2014-09-11T18:26:46.543 回答