一台电脑支持2个git账号:gitlab+github

本文介绍如何在同一台电脑上配置两个独立的Git环境,分别用于公司项目和个人GitHub项目,确保两者互不影响。涵盖注册GitHub账号、生成及配置公钥私钥、设置Git配置文件等关键步骤。

一、背景

1.公司使用gitlab保存代码,git已支持。

2.需要新增一个人github账户。创建study项目并提交到github上。

3.git提交时互相不混淆

二、操作流程

1.注册github

官网地址:https://github.com。注册后得到用户名和密码。

新建一个公有的远程仓库,可以得到一个http git地址,供后面本地代码绑定远端git用。

2.生成一套新的公钥私钥

老的git的公钥私钥不动,新建一套新的公私钥。

1)进入ssh根目录 cd ~/.ssh

生成秘钥对ssh-keygen -t rsa -C "email地址"   -f github    其中-C 后面的是注册github时用的邮箱,-f 后面是生成秘钥的名称。如下图:

3.公钥配置到github

点击右上角,下拉list如下:

点击settings,弹出页面如下:

点击SSH and GPC keys,如下:

点击New SSH key 新增一个公钥。title随便起。key就是.pub

4.配置config

先看一下根目录下有没有config文件,如果之前是默认的就没有。没有就touch 一个。

config配置如下:

 

配置完config后测试ssh -T git@github.com时

成功:

报错:

这时输入yes,因为ssh为了安全,会从本地文件的known_hosts 中查看已知host.输入yes回车,就会往known_hosts里面新增一条记录。下次再访问就OK了。

5.git提交

老的公司的git默认生成的都是全局的用户名和邮箱。这时需要新建一个目录,作为git本地仓库。

 

操作完之后可以ls -a 可见文件下有个隐藏的.git文件

 

在idea中打开项目,git commit初次提交需要手动选择文件。push到远端,因为远程还没有文件,需要配置一下git地址,点击Define remote->

把第一步生成的git地址输入。

 点击push.
上github上校验一下代码是否提交成功

可见,代码已成功提交。

三、存在问题

虽然可以提交代码(说明明显公钥私钥加解密没问题),但是不知道为啥gihub上的ssh keys 一直是黑色的,就是不变绿....求问!!!

 

### 配置不同Git账号提交代码(不使用SSH config) 在不使用SSH配置文件的前提下,可以通过为每个Git账号生成独立的SSH密钥,并在每次提交代码时手动指定SSH密钥来实现多个Git账号的管理。 #### 生成独立SSH密钥 为每个Git账号生成一组独立的SSH密钥。例如,针对GitHubGitLab分别生成不同的密钥: ```bash # 生成GitHub账号的SSH密钥 ssh-keygen -t rsa -C "github@example.com" -f ~/.ssh/id_rsa_github # 生成GitLab账号的SSH密钥 ssh-keygen -t rsa -C "gitlab@example.com" -f ~/.ssh/id_rsa_gitlab ``` 生成密钥后,需要将对应的公钥内容(`.pub`文件)添加到对应平台的SSH密钥管理界面中。 #### 手动指定SSH密钥进行Git操作 每次执行Git操作时,可以通过`GIT_SSH_COMMAND`环境变量指定使用的SSH密钥。例如克隆仓库时可以这样操作: ```bash # 使用GitHub的SSH密钥克隆仓库 GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa_github" git clone git@github.com:username/repo.git # 使用GitLab的SSH密钥克隆仓库 GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa_gitlab" git clone git@gitlab.com:username/repo.git ``` 提交代码时,同样可以使用该方式指定SSH密钥: ```bash # 提交代码时指定GitHub的SSH密钥 GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa_github" git push origin main # 提交代码时指定GitLab的SSH密钥 GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa_gitlab" git push origin main ``` 这种方式避免了对`~/.ssh/config`文件的依赖,同时确保了不同账号之间的隔离性[^1]。 #### 配置本地仓库用户信息 每个Git仓库可以配置独立的用户名邮箱信息,以确保提交记录与对应账号一致: ```bash cd repo_path git config user.name "GitHubUser" git config user.email "github@example.com" ``` 对于另一个仓库: ```bash cd another_repo_path git config user.name "GitLabUser" git config user.email "gitlab@example.com" ``` 通过这种方式,可以确保提交记录与对应的Git账号保持一致,避免混淆。 #### 简化操作方式 为了避免重复输入SSH密钥路径,可以将常用命令封装为别名: ```bash # ~/.bashrc 或 ~/.zshrc 中添加 alias git-github='GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa_github" git' alias git-gitlab='GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa_gitlab" git' ``` 然后执行: ```bash source ~/.bashrc # 或 source ~/.zshrc ``` 使用时可以直接运行: ```bash git-github clone git@github.com:username/repo.git git-gitlab clone git@gitlab.com:username/repo.git ``` 这样可以在不依赖SSH配置文件的前提下,灵活地管理多个Git账号。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值