在一台计算机上的一个Git中切换用户身份
在一台计算机上的一个Git中切换用户身份
我在GitHub上有一个仓库,叫做Repo-1。
我想首先以默认的Git用户访问该仓库。
我们称这个用户为User-1。
我创建了SSH密钥对,一切都很好,运行良好。
我在GitHub上创建了另一个仓库,叫做Repo-2。
在我的笔记本电脑上,我没有对本地Git进行任何更改。没有配置更改,没有任何东西。
现在,我想从同一台笔记本电脑上的User-2中克隆Repo-1(但是仍然是从Repo-1中克隆)。
首先:这样做是否可能?
一台单独的笔记本电脑上的本地Git能够在“用户账户”之间切换,并以User-2的身份呈现自己吗?然后,从该身份克隆Repo-1,进行一些更改,然后推送到Repo-1?
如果可能,我应该如何操作?
在同一台计算机上的Git中切换用户身份
在全局的.gitconfig文件中,您已经配置了SSH密钥/用户信息。但是全局的.gitconfig文件会被本地的gitconfig文件覆盖,即.git文件夹中的"config"文件(如果不存在,您可能需要创建它)。
例如,您可以将.gitconfig文件复制到.git文件夹中(并将其重命名为"config"),然后只需更改您想要更改的行(可能是github.user和github.token),或者创建一个只有这两行的新文件。
如果您喜欢使用命令行的"git config"命令,可以省去所有移动文件的步骤,只需省略"--global"选项。
非常好,谢谢。我刚刚测试了一下。有两个文件夹(同一级别,一个在另一个文件夹旁边,文件夹1和文件夹2)。在文件夹1中,config文件中的默认设置。在文件夹2中更改了设置,包括GitHub用户名。在文件夹1中启动GitBash,克隆-...-推送,GitHub看到了来自默认用户的提交。在文件夹2中启动GitBash,克隆-...-推送,GitHub看到了来自其他用户的提交。非常完美,无需更改全局设置。不同的文件夹,不同的用户。正是我所需要的。太棒了,再次感谢!
在我看来,这个答案中的最后一句话很关键。因为我觉得让git处理工作流程似乎更清晰,而不是自己在文件中搞来搞去。顺便说一下,这是一个关于与此主题相关的git config的很好的指南:help.github.com/articles/…
是的,最后一句话很关键,但更具体地说,这是一个链接到文档的链接,文档中详细说明了每个文件的位置:git-scm.com/book/en/v2/Customizing-Git-Git-Configuration
在同一台计算机上的Git中切换用户身份的问题可能出现的原因是:用户想要在同一台计算机上使用不同的身份进行提交。解决这个问题的方法有两种:
1. 如果用户拥有两个不同的SSH密钥对,可以通过创建一个~/.ssh/config
文件来解决。在该文件中,为每个账户使用不同的SSH伪主机配置。然后,可以使用相应的远程主机克隆和推送代码。
2. 如果用户只是想要使用两个不同的电子邮件地址,可以在每个克隆的.git/config
文件中分别设置所需的[user]
设置。
需要注意的是,GitHub通过检查用户的姓名和电子邮件来确定每个提交的作者,并将其与相应的GitHub账户关联起来。因此,如果用户使用不同的电子邮件地址进行提交,GitHub将根据电子邮件地址将提交与相应的账户关联起来。
这些方法可以让用户在同一台计算机上使用不同的身份访问同一个GitHub仓库,并进行提交操作。