如何设置多个git account

本文介绍了如何在一台电脑上为不同的Git账号设置不同的SSH密钥,并通过修改git config来管理不同项目的提交信息,以同时使用公司和个人Git账号。尽管无法完全实现根据不同项目自动切换提交账户,但可以通过全局配置一个常用账号,然后在特定项目中更改user.name来达到类似效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:

一个公司的git仓库账号

一个我的个人github账号

我怎么在一台电脑上同时配置呢(同时配置的想法是,公司项目A我可以拉下来,提交的commit是公司的张号,我的私人项目我也可以拉下来,提交的commit是我的个人账号)

最后经过实践,以上的想法没完全实现。不过也可以满足需求了吧算

个人理解,很多地方名词表述不标准,反正是那个意思

 

以下:

1️⃣首先分别为两个account生成rsa :

ssh-keygen -t rsa -C "your.email@example.com" -b 4096 选择存储位置的时候记文件名带个前缀方便区分,e.g fivejoy_id_rsa

2️⃣为当前电脑配置两个account

vim ~/.ssh/config

输入以下内容(下划线部分是需要修改的)

# GitLab server - work
Host server.host
RSAAuthentication yes
IdentityFile ~/.ssh/config/xx_id_rsa

# GitLab server - github
Host github.com
RSAAuthentication yes
IdentityFile ~/.ssh/config/fivejoy_id_rsa
 

3️⃣按照常规把pub-key粘贴到git的sshkey就行

此时在你的目录下任何位置 git clone 来自这两个git server的代码都可以。

但是如果分别进行git add +commiit ,如果曾经配置过git config --global user.name.. git log显示你的提交信息是global配置的,如果没有配置过,会默认使用你的电脑名作为git提交账户。

注意git只有以下几个维度配置

git config --global

git config --system

git config --worktree

git config --local

(默认没有写这个的时候 即 直接git config user.name 使用的就是--local,表示只针对当前这个responsitory)
(一个responsity 中肯定有一个.git目录可以用ls -a 看到,cat xx/.git/conf 可以看到--local配置的是当前resp的conf)

因为git conf会逐渐覆盖,用--local的覆盖--global‘

所以最后妥协选择了如下办法

4️⃣git conf --global 设置一个常用的,如果是个人电脑就设置自己的,如果是公司电脑就设置公司的account

5️⃣如果需要对另一个account的project进行修改,直接在那个project(是个resp)下git config user.name

 

最后,本来是想用--worktree设置的,因为看起来像对某个目录下所有的工作区都配置,但是没有成功,可能是因为这个某个目录 并不是其下目录的resp,并没.git/conf对其进行配置。

不过现在退而求其次也可以了,毕竟,在家打开公司项目的数量少之又少,在公司打开个人项目的数量也少之又少

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值