侧边栏壁纸
博主头像
Z同学博主等级

工作磨平激情前,坚持技术的热忱。 欢迎光临Z同学的技术小站。 分享最新的互联网知识。

  • 累计撰写 274 篇文章
  • 累计创建 55 个标签
  • 累计收到 74 条评论
Git

Windows 中Git 多账号创建与提交

Z同学
2021-10-28 / 0 评论 / 2 点赞 / 425 阅读 / 1,908 字
温馨提示:
本文最后更新于 2021-11-18,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

前言

主要介绍如何在有多个git账号的情况下使用git进行提交。

例如,我有一个公司git账号。 zinyan@公司.com和一个私人账号 zinyan@私人.com

如何在本地给他们创建两个提交。避免私人git提交后显示公司的账号信息。

下面详细介绍下自己的操作过程。

本地已经存在git账号配置并使用的前提下。如何创建多个账号并分别提交。

账户 rsa文件创建

启动GitBash 我们输入 :git config --list 看看现在git 下的账号情况

效果图

这个就是默认情况下,我们本地git提交时,记录中会显示的提交人信息。

我们下面要添加第二个账号,主要就是创建一个不一样的id_rsa 就可以了。

示例:输入: ssh-keygen -t rsa -C 'zinyan@126.com' //这是我创建的第二个账号

输入后,会让我们创建rsa 的保存地址。

示例效果

2.png

我们记住在 Enter file in which to save the key 的时候我们将决定新的rsa文件的存储路径。

你可以修改文件名,也可以修改存储的文件夹。

我上面是创建了一个zinyan文件夹。

注意:你如果选择新文件夹,那么该文件夹必须存在。 否则就会提示错误。

failed: No such file or directory 文件目录不存在。

创建成功后,会让我们给该id_rsa 文件创建密码,这个秘密可创建可不创建。

通常我们自己的电脑使用,你可以不用创建,直接回车即可。

然后会自动开始创建。效果图入下。

效果图

创建成功后。 你在文件夹下就可以看到新创建的id_rsa 文件了。

效果图

我们可以采用这种方式,给你的本地创建更多的id_rsa 账号信息。

创建了rsa文件后,我们下一步,就是让git在提交时知道如何访问不同的rsa文件获取公钥和账户。

添加ssh 到git配置之中。

在很多文章中,都在介绍添加rsa文件后,执行了ssh-add 进行添加私钥到SSH agent之中。

其实,这并不是必须的。我们如果配置了config文件后。这一步完全可以省略。

你可以通过这个了解下 ssh-add 是干什么的:是否必须每次添加ssh-add - SegmentFault 思否

我们直接在.ssh文件夹下,创建config文件

输入:vim config 就可以创建了

效果

然后具体的vim 的脚本,你可以参考我的文章:Linux vim 命令介绍和使用 - Z同学 (zinyan.com)

进行编辑操作。如果你实在觉得繁琐,可以直接在windows界面中创建一个文件,然后进行编辑。但是需要注意文档格式否则容易造成冲突。

config 文件输入如下:

# 公司的账号
Host compay
#你们公司的git 的服务器地址。必填
HostName xxxx.cn 
# 可以填写你们公司的账号也可以是用户名。 
User xxxx@xx.cn  
# 这个ssh链接访问的密钥rsa文件路径。  它才决定了我们能否正常访问
IdentityFile ~/.ssh/id_rsa

# 我自己的私有账户: zinyan@126.com
Host zinyan
HostName gitee.com
User zinyan@126.com
IdentityFile ~/.ssh/zinyan/id_rsa

其中只有HostName 和IdentityFile文件是比较重要的。需要输入准确。

Host 和User 都是可以自己决定。User决定了后面该Git提交时 作者信息。

到这里我们的账号创建就完成了。

验证

我们需要验证自己配置的账号是否成功了。

输入: ssh -T git@zinyan

@后面的就是我们创建的Host 的名称。然后git会自动访问hostName 定义的网站。

如果该服务器上你的密钥没有添加到SSH中。就会提示Permission denied(Publickey)。

效果图

如果我们添加SSH公钥成功后,访问就会得到。

效果图

之后,我们正常使用即可。

你要知道。config 只是一种配置文件,告诉git在访问指定网址的时候,应该调用到哪个密钥进行验证而已。

但是。这种方式很容易造成我们SSH进行连接时,发生地址错误出现的访问问题

例如:

git@gitee.com:zinyan/maven.git 我有一个这样的gitee服务器的地址。

我现在直接 clone 就会出错。

示例:

image.png

Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

会告诉我们,没有权限。

这种情况下,需要我们进行git路径的替换

改为:git@zinyan:zinyan/maven.git

就能够使用了。

2

评论区