Wor*_*432 6 git command-line github windows-subsystem-for-linux wsl-2
我创建了两个独立的 GitHub 帐户。
我还使用同一设备为它们生成了两个单独的 SSH 密钥。
当我git config user.name
在终端中输入时,输出显示USERNAME2
。
我现在想在帐户 1 中工作,因此我输入git config --global user.name "USERNAME1
并为电子邮件执行了相同的操作。
但我认为它并没有真正切换帐户,只是重命名了我的用户名什么的?我认为这是因为当我尝试在帐户中创建新的存储库时,对于所有 git 命令,我不断收到错误fatal: not a git repository (or any of the parent directories): .git
,这是我以前在运行单个帐户时从未遇到过的错误。
我的 SSH 密钥位于两个不同的文件夹中(对于 account1,它位于主目录中的 .ssh 中,对于 account2,它位于主目录中的 .newssh 文件夹中)。
我该怎么办?
我现在想在帐户 1 中工作,所以我输入
git config --global user.name "USERNAME1"
这与远程 Git 服务器身份验证无关。
它仅设置本地提交作者身份。
要使用不同的帐户,您需要不同的远程 URL,每个 URL 设置为使用正确的私有 ssh 密钥进行远程身份验证。
这已完成~/.ssh/config
,如下所示。
Host github2
HostName github.com
User git
IdentityFile /home/me/.newssh/key2
Run Code Online (Sandbox Code Playgroud)
它假设:
你有git init myProjectFolder
,为了在ProjectFolder
您已在中设置了正确的远程 URLProjectfolder
git remote add origin github2:<me>/myProject
Run Code Online (Sandbox Code Playgroud)
逐步假设 WSL2 中有一个活动的 shell 会话(请更改对您更有意义的名称)
Host github2
HostName github.com
User git
IdentityFile /home/me/.newssh/key2
Run Code Online (Sandbox Code Playgroud)
将 account1.pub 和 Accont2.pub 注册到各自的 GitHub 帐户:请参阅“将新的 SSH 密钥添加到您的 GitHub 帐户”
设置~/.ssh/config
:
git remote add origin github2:<me>/myProject
Run Code Online (Sandbox Code Playgroud)
cd ~/.ssh
ssh-keygen -t rsa -P "" -f account1
ssh-keygen -t rsa -P "" -f account2
Run Code Online (Sandbox Code Playgroud)
(<...>
是占位符值,需要替换:不要保留<
和>
)
Host account1
HostName github.com
User git
IdentityFile ~/.ssh/account1
Host account2
HostName github.com
User git
IdentityFile ~/.ssh/account2
Run Code Online (Sandbox Code Playgroud)
完成这些步骤后,每次提交都将使用正确的 GitHub 帐户完成,并推送到正确的 GitHub 存储库。