IDEA配置多个git账号/ 同一电脑上使用2个git账号根据项目进行拉去、提交代码
在idea中根据项目使用不同的git账户
简介
在公司电脑上学习或开发代码时,很多人希望能把自己的代码保存到 个人 Git 仓库 中,既能进行版本管理,又能方便以后复盘和使用。
但在实际操作中常常会遇到一个问题:
公司电脑通常已经配置了 公司 Git 账号,如果直接上传代码,很可能会被提交到公司账号下,而不是个人账号,这就带来了困扰。
我也在网上找过不少相关文章,但大多数要么写得太简略,要么会省去一些步骤,或者默认读者已经熟悉 Git,对我来说并不够友好。
刚好我根据AI把这个问题搞定了,我打算写一篇更为详细的 Git 双账号操作攻略,帮助大家也帮助我,在公司环境下既能使用公司账号进行日常开发,又能用个人账号来管理自己的项目。
开始
在 IntelliJ IDEA 中为不同项目配置不同的 Git 账号(如公司账号和个人账号),可以通过 SSH 密钥隔离 + 局部 Git 配置 的组合方案实现,全程无需手动切换全局设置。以下是 最简洁的操作流程,
分 4 步完成:
一、核心原理:SSH 密钥隔离与局部配置
- SSH 密钥隔离:
为每个 Git 账号生成独立的 SSH 密钥对,并通过 .ssh/config 文件告诉 Git 哪个仓库用哪个密钥。 - 局部 Git 配置:
在每个项目的根目录单独设置 user.name 和 user.email,覆盖全局配置。
二、分步操作指南(Windows/macOS/Linux 通用)
(一)生成独立 SSH 密钥
将公钥添加到 Git 平台:
登录 GitHub/GitLab/Gitee → 账户设置 → SSH Keys → 添加公钥内容gitee:
gitlab/极狐:
右键使用文本框打开,复制 .pub 文件内容, 将内容放入 秘钥/公钥 中保存即可注意:将公司公钥放到公司账号下,个人公钥放到个人账号下
打开Git Bash(Windows)或终端(macOS/Linux):
注意: 在生成 SSH Key 时,请务必先进入用户主目录下的 .ssh 文件夹 。
否则如果你在其他目录下直接执行 ssh-keygen,系统会在当前目录生成 key 文件,导致找不到或者后续配置混乱。
(我就吃过亏(T_T) )
cd ~/.ssh # 直接进入用户主目录的 .ssh 文件夹执行下方,生成公司和个人的秘钥
# 生成公司账号密钥(自定义文件名:id_rsa_work) ssh-keygen -t rsa -C "公司邮箱" -f ~/.ssh/id_rsa_work # 生成个人账号密钥(自定义文件名:id_rsa_personal) ssh-keygen -t rsa -C "个人邮箱" -f ~/.ssh/id_rsa_personal # 这个邮箱并不是必须的邮箱验证账号,它主要是做为一个标识# 一般写邮箱是为了方便分辨,通过邮箱能清楚地知道这个 key 是给哪个账号用的全程按回车(不设密码),生成后 .ssh 目录会出现:
id_rsa_work (公司私钥)
id_rsa_work.pub (公司公钥)
id_rsa_personal (个人私钥)
id_rsa_personal.pub (个人公钥)
(二)配置 SSH 自动匹配规则 (关键)
在 .ssh 目录创建 config 文件(无后缀)
echo""> ~/.ssh/config # 新建文件(Windows 用 Git Bash 执行)这时候.ssh下面就有5个文件
2.编辑 config 文件,添加内容
# 公司仓库(假设 Git 地址为公司git地址 git.example.com) Host work-git HostName git.example.com # 实际 Git 服务器域名 User git# 固定为 git IdentityFile ~/.ssh/id_rsa_work # 关联公司私钥(没有改第一步的名称就不用动) IdentitiesOnly yes# 强制使用指定密钥# 个人仓库(假设 Git 地址为 github.com) Host personal-git HostName github.com # 实际 Git 服务器域名 User git# 固定为 git IdentityFile ~/.ssh/id_rsa_personal # 关联个人私钥(没有改第一步的名称就不用动) IdentitiesOnly yes# 强制使用指定密钥# 注意: HostName 这个地方地址指的实际Git服务器域名# 什么意思呢? # 比如拿开源的项目举例:# gitee的项目地址为: https://gitee.com/y_project/RuoYi.git # 实际的Git服务器域名为:gitee.com# github的项目地址为:https://github.com/yangzongzhuan/RuoYi.git# 实际的Git服务器域名为:github.com#如果你是公司本地的Git地址 或者 gitlab、极狐等,显而易见Git服务器域名就是地址栏中的服务器域名 # 如果公司和个人都是gitee那都填写gitee.com验证配置是否生效
# 测试公司仓库连接ssh -T git@work-git # 测试个人仓库连接ssh -T git@personal-git # work-git 和 personal-git 就是上方config文件中 Host 的名称若输出 You’ve successfully authenticated…,说明配置正确。
本人是采用gitee和gitlab 分别作为公司和个人的仓库,返回的结果也不一致,
**如图所示:*
(三)在 IDEA 中仓库使用别名
用之前配置的 SSH 别名简化仓库操作让 Git 自动匹配对应的密钥(公司 / 个人账号), 无需手动指定密钥路径 将原先的 Git 仓库地址(HTTPS 协议)改为 SSH 别名格式(work-git)
拿Gitee上的开源框架举例: 原地址为: https://gitee.com/y_project/RuoYi.git 从这个地址中提取两个核心信息(后续改地址要用到) 用户名:y_project(地址中 gitee.com/ 后面、/RuoYi.git 前面的部分); 仓库名:RuoYi(地址中最后一个 / 后面、.git 前面的部分)。 根据之前的配置,work-git 是公司账号的 SSH 别名,其SSH地址格式为: git@work-git:用户名/仓库名.git 将提取的「用户名」和「仓库名」填进去,最终目标地址为: git@work-git:y_project/RuoYi.git 个人项目修改
根据上方样例修改个人项目仓库地址
git@personal-git:个人用户名/仓库名.git 公司项目仓库修改
根据上方样例修改公司项目仓库地址
git@work-git:公司用户名/仓库名.git 执行修改远程地址的命令
在 IDEA 中打开你公司的项目,进入 底部 Terminal 终端,按以下步骤操作:
验证是否修改成功
git remote -v 如果输出变成下面这样,说明修改成功:
# 拿work-git举例: origin git@work-git:用户名/仓库名.git (fetch) origin git@work-git:用户名/仓库名.git (push)执行修改命令
# 在公司/个人项目中 执行 刚刚修改好的SSH地址git remote set-url origin git@work-git:用户名/仓库名.git git remote set-url origin git@personal-git:用户名/仓库名.git # 如果在执行语句时,报错: error: No such remote 'origin'# 是因为当前 Git 仓库中根本没有名为 “origin” 的远程仓库,所以无法使用# git remote set-url 命令修改它(这个命令是用来修改 “已存在” 的远程仓库地址的)。 # 需要添加新的远程仓库 git remote add origin origin git@work-git:用户名/仓库名.git git remote add origin origin git@personal-git:用户名/仓库名.git # 注意: 我是将公司和个人的命令的示例展示出来了,请不要直接复制,需要修改为自己的地址执行命令
git remote -v 输出会类似这样(显示原 HTTPS 地址):
# 当前htts地址为示例地址, 请按照自己项目地址进行对照 origin https://gitee.com/y_project/RuoYi.git (fetch) origin https://gitee.com/y_project/RuoYi.git (push)(origin 是远程仓库的默认名称,不用改)
(四)配置项目局部Git身份(提交记录显示正确作者)
- 在 IDEA 中打开项目,进入 Terminal(底部工具栏)
- 设置公司项目的提交身份:
git config user.name "公司姓名" git config user.email "公司邮箱@example.com" - 设置个人项目的提交身份:
git config user.name "个人姓名" git config user.email "个人邮箱@example.com" !注意: 当前 步骤2、 3 设置提交身份,只是定义当前项目的提交作者身份(git提交记录中的身份信息),完全不影响代码上传的地址
(五)验证当前项目配置
分别在公司项目和个人项目验证
git config --list # 查看当前项目配置当前git config --list 的输出,如果当前配置内容较多时,Git 会自动用分页器展示
要退出这个查看界面,只需要按键盘上的 q 键(quit 的缩写,意为 “退出”),就能回到终端的可输入状态
三、IDEA中确认仓库地址
打开IDEA在菜单栏中找打Manage Remotes
当前菜单栏如果没有Git,那 VCS 也是一样的
来到下方页面,查看是否是 修改好的SSH地址
如果当前地址不是修改好的 SSH地址 ,将地址点击-删除
然后点击左上角的+重新添加
当前需要输入 Name 和 URL
Name 最好为默认的 origin URL 为之前的SSH地址 ,如: git@work-git:y_project/RuoYi.git
点击ok后,就配置好了,会出现下方图中 存在当前仓库的路径
到这里,基本配置就完成了,你已经可以根据不同账号来拉取代码、提交代码等操作了。
结束(以下内容可省略)
不过,在我实际操作时,点击 OK 保存配置时会弹出一个新的认证页面(当时也卡了一会😅),所以也记录下来,避免其他同事/同学踩坑。
我当时使用的是gitlab的国内版极狐,点击ok后会弹出账户认证页面,如下
如何获取Token?
1.登录 jihulab.com 账号。
2. 进入个人设置(点击头像 → 找到 “Settings” 或 “偏好设置”)。
3. 找到 “Access Tokens”(访问令牌) 选项(通常在 “Settings” 下的子菜单)。
生成令牌时,必须勾选 api 和 read_user 这两个权限范围(界面提示这两个是必需的,用于 让 IDEA 访问 GitLab API 和用户信息)。
4. 点击 “生成令牌” 后,会得到一个令牌字符串,将其复制到 IDEA 的 Token 输入框中。
如果出现问题: “GraphQL error: [Unexpected end of document]” 错误
检查 Token 有效性
登录 jihulab.com,重新生成Access Token(确保勾选 api 和 read_user 权限)。
复制 Token 时,确认字符完整(没有少复制、多复制或包含多余空格)。验证 Server 地址
将 Server 地址从 http://jihulab.com 改为 https://jihulab.com(HTTPS 更安全,兼容性更好)