git同时绑定两个账号gitlab、github

本文详细介绍了如何在Git中同时配置并使用两个不同平台(如GitHub和GitLab)的账号,包括生成和区分公/私钥、设置不同的Host、取消全局配置及单独设置账号信息的全过程。

git同时绑定两个账号gitlab、github

有时候git需要同时绑定两个账号,一个是公司的gitlab、一个是私人的github

流程:

1 生成两对 公/私钥,一个账户一对
2 设置不同的Host
3 取消全局的username、usermail,为每个账户单独设置

步骤:

生成两对公/私钥

一般情况下,是已经有一对密钥的,只需要根据命令在生成一对就可以了,注意密钥的名称必须区分开来,我的电脑是一对密钥都没有,所以生成了两对。

ssh-keygen -t rsa -C "注册github邮箱" -f ~/.ssh/id_rsa_1
ssh-keygen -t rsa -C "注册gitlab邮箱" -f ~/.ssh/id_rsa_2

生成后,可以通过 ls ~/.ssh 查看已经生成的两组公/私钥

在这里插入图片描述

添加 私钥 到SSH:

ssh-add id_rsa_1
ssh-add id_rsa_2

设置不同的Host

vim ~/.ssh/config
编辑config里面的内容,没有config的话touch一个 touch ~/.ssh/config

# github user
Host git@github.com
Hostname https://github.com/
User github的用户名
IdentityFile ~/.ssh/id_rsa_1

#gitlab user
Host git@gitlab.com
Hostname http://gitlab.com/
User gitlab的用户名
IdentityFile ~/.ssh/id_rsa_2

配置完成后,在gitlab上添加ssh密钥,将id_rsa_1.pub中的内容复制过去,github同理。

在这里插入图片描述

测试是否配置成功:

ssh -T git@github.com
ssh -T git@gitlab.com

提示下面这句话,表示链接成功

Hi Ly9623! You’ve successfully authenticated, but GitHub does not provide shell access.

取消全局的username、usermail,为每个账户单独设置

取消全局配置:

git config –global -l   //查看配置
git config –global –unset user.name
git config –global –unset user.email

在clone项目存放的目录中,打开git bush,单独设置每个账户的 username/usermail

git config user.email “邮箱”
git config user.name “用户名”

新建text.txt文档,push至github,输入用户名和密码,上传成功

在这里插入图片描述

在使用 Git 进行版本控制时,开发者常常需要在多个账号之间切换,例如个人账号与公司账号,或者多个公司项目之间的不同账号。为了实现这一需求,可以通过配置多个 SSH 密钥以及设置局部或全局的用户信息来实现多账号管理。以下是详细的配置方法和管理技巧。 ### 配置 Git 用户信息 Git 提供了配置用户名和邮箱的功能,可以通过全局配置或局部配置来区分不同账号。全局配置适用于所有仓库,而局部配置仅适用于当前项目。 - 设置全局用户名和邮箱: ```bash git config --global user.name "YourGlobalName" git config --global user.email "yourglobal@email.com" ``` - 查看当前配置信息: ```bash git config --list ``` - 清除全局凭证信息(如需重置): ```bash git config --global --unset credential.helper ``` 在 Windows 系统中,如果 Git 凭证被缓存,可以在“凭据管理器”中编辑或删除相关条目以更新账号信息[^2]。 ### 生成多个 SSH 密钥 为实现免密登录不同账号Git 仓库,需要为每个账号生成独立的 SSH 密钥对,并将其添加到对应的 Git 平台账户中。 - 使用 `ssh-keygen` 生成密钥: ```bash ssh-keygen -t rsa -C "your@email.com" -b 4096 -f ~/.ssh/id_rsa_github ssh-keygen -t rsa -C "work@email.com" -b 4096 -f ~/.ssh/id_rsa_gitlab ``` - 添加密钥到 `~/.ssh/config` 文件中以区分不同平台: ```bash # GitHub account Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa_github # GitLab account Host gitlab.com HostName gitlab.com User git IdentityFile ~/.ssh/id_rsa_gitlab ``` - 将公钥内容复制到对应平台的 SSH 密钥设置中。 ### 局部配置用户信息(用于单个项目) 如果希望某个项目使用特定的账号信息,可以在该项目目录下执行非全局配置命令: ```bash git config user.name "ProjectSpecificName" git config user.email "projectspecific@email.com" ``` 这样,该仓库将使用局部配置的用户名和邮箱,而不会影响其他仓库使用的全局配置[^4]。 ### 使用 `.gitignore` 忽略特定文件或目录 在项目中,有些文件不需要提交到版本库中,例如编译生成的文件、日志文件或临时文件夹。可以通过 `.gitignore` 文件指定这些文件的忽略规则: ```plaintext # 忽略 unpackage 文件夹下的所有内容 unpackage/ ``` 此配置将阻止 Git 跟踪 `unpackage/` 目录及其子目录中的所有文件[^2]。 --- ### 示例:多账号配置流程(GitHub + GitLab) 1. 生成两个 SSH 密钥,分别对应 GitHubGitLab2. 编辑 `~/.ssh/config` 文件,设置 Host 别名与密钥绑定。 3. 将公钥分别添加到 GitHubGitLab 的 SSH 密钥设置中。 4. 在本地仓库中配置局部用户信息(如需)。 5. 使用 `git clone git@github.com:username/repo.git` 或 `git clone git@gitlab.com:username/repo.git` 克隆仓库。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值