同一系统下两个Git账户冲突及提交作者异常问题咨询
问题解答
一、SSH配置导致提交作者不符的问题
你当前的SSH配置里密钥文件完全搞反了:
Host account1对应的IdentityFile是/home/USER/.ssh/account2_ssh,实际用的是account2的密钥去连接GitHub,所以认证的是account2账号,提交作者自然会显示为account2。Host account2对应的IdentityFile是/home/USER/.ssh/account1_ssh,反而用了account1的密钥。
修正后的正确配置应该是:
Host account1 User git Hostname github.com PreferredAuthentications publickey IdentityFile /home/USER/.ssh/account1_ssh Host account2 User git Hostname github.com PreferredAuthentications publickey IdentityFile /home/USER/.ssh/account2_ssh
修正后再执行git clone git@account1:Account1/app.git,就会用account1的密钥完成认证,提交作者也会对应account1。
二、git init初始化仓库的归属问题
用git init初始化的本地仓库本身没有所谓的“归属主体”。Git的提交作者信息完全由本地Git配置决定:
- 全局配置:通过
git config --global user.name "你的名称"和git config --global user.email "你的邮箱"设置,所有本地仓库默认会采用这个配置。 - 单个仓库配置:进入目标仓库目录后,用
git config user.name "对应账号名称"和git config user.email "对应账号邮箱"单独设置,这个配置的优先级高于全局配置。
简单说,你想让仓库提交时显示哪个账号的作者信息,就设置对应的user.name和user.email,和git init操作本身没有直接关联。
内容的提问来源于stack exchange,提问作者Karan
相关产品推荐
相关产品推荐

