git学习 一个电脑多个账户使用方法

本文详细介绍如何在一台机器上为多个GitHub账户配置不同的SSH密钥,并提供了具体步骤,包括生成SSH密钥、配置SSH代理、添加公钥到GitHub账户以及如何通过配置文件指定不同账户的SSH密钥。

比如 两个github 或者 两个gitlab 或者各一个

生成SSH Key

生成SSH KEY: ssh-keygen -t rsa -C “your_email@example.com” , 然后会提示输入公钥的名字, 如果你需要多个SSH-KEY(比如有多个github帐号)就需要在命名的时候区分一下,比如输入”/home/chen/.ssh/xyz_rsa”这样的名字,这样在/home/chen/.ssh/文件夹下生成两个文件: xyz_rsa.pub和xyz_rsa, 分别是你的公钥和私钥.

生成SSH KEY的时候还要求输入私钥密码”│Enter passphrase (empty for no passphrase):”, 请记住私钥的密码(可不输入), 下面导入私钥的时候要用到。

将SSH 私钥增加到ssh-agent: ssh-add ~/.ssh/xyz_rsa, 这里会提示输入一次私钥的密码;
查看已经add的SSH KEY: ssh-add -l;
浏览器登录自己的github页面, 进入”Account Settings”, 再点击左边的”SSH Key”可以看到自己上传过的SSH公钥列表. 再点击”Add SSH Key”新增一个公钥, 直接粘贴即可(上一步已经使用xclip把公钥id_rsa.pub复制到剪切板了);
测试SSH Key登录

打开终端, 测试: ssh -T git@github.com;
你可能会看到下面的错误信息:
Agent admitted failure to sign using the key.
debug1: No more authentication methods to try.
Permission denied (publickey).
上面的错误在某些Linux发行版(比如我的Fedora 17)是一个已知的错误, 可以忽略。
然后会看到打印出公钥的指纹,请确认此指纹和你公钥的一致,然后输入”yes”确认。

” Hi your_name! You’ve successfully authenticated, but GitHub does not provide shell access.”
如果your_name正确显示你的ID,则说明成功设置了SSH公钥.

一台机器上管理多个Github帐号的SSH Key

如果你在一台机器使用两个github账号(比如私人账号abc和工作账号xyz),两个帐号用不同的SSH KEY,还需要编辑一下配置文件~/.ssh/config:

Host personal.github.com HostName github.com User git
IdentityFile ~/.ssh/personal_rsa
Host work.github.com HostName github.com User git
IdentityFile ~/.ssh/work_rsa
解释此配置文件:

Host: “personal.github.com”是一个”别名”,可以随意命名, 像github-PERSONAL这样的命名也可以;
HostName:比如我工作的git仓储地址是git@code.sohuno.com:username/repo_name.git, 那么我的HostName就要填”sohuno.com”;
IdentityFile: 所使用的公钥文件;
配置完毕,用下面的命令测试一下:

ssh -T git@personal.github.com
ssh -T git@work.github.com # 注: @符号后面的”personal.github.com”就是在~/.ssh/config文件中指定的”Host”项
(1)为已经检出的repos指定github账号:

在已经检出的repos目录下执行:

git config user.name “your-id” git config user.email “your-id@gmail.com”
修改.git/config并找到[remote “origin”],修改url的值为:

[remote “origin”]
url = git@personal.github.com:user_name/repos_name.git
其中, personal.github.com就是在配置文件~/.ssh/config中的Host项, 设置完成后, 在这个工程目录git push会自动以此git帐号提交代码。

(2)使用指定账号clone已存在的repos:

使用指定账号clone一个已经存在的repos:
git clone git@personal.github.com:user_name/repos_name.git, 上面命令中的”personal.github.com”就是在~/.ssh/config文件中指定的”Host”项, “user_name”是指定提交代码的账户名, 例如:

git clone git@personal.github.com:whatsdjgpp/Vimrc.git
Cloning into ‘Vimrc’…
然后还需要config一下user.name和user.email, 进入repos目录执行:

git config user.name your_name
git config user.email your_email
以后在此repos下git push origin master就是使用指定的用户push.

(3)使用指定账号init新的repos:

如果是新建一个仓储:在github.com创建一个新repos,

gitinit git add . gitcommitmfirstcommit git remote add origin git@personal.github.com:user_name/testing.git $ git push -u origin master
上面命令第4行: “personal.github.com”就是在~/.ssh/config文件中指定的”Host”项, “user_name”是指定提交代码的账户名.

在同一台电脑上同时安装和管理多个版本的 Git 是可行的。以下是实现这一目标的方法及相关说明: ### 方法一:通过独立安装包手动管理 可以下载不同版本的 Git 安装程序并分别安装到不同的路径下。例如,将 `Git v2.30` 和 `Git v2.35` 分别安装到 `C:\Program Files\Git-v2.30` 和 `C:\Program Files\Git-v2.35` 中[^1]。 为了切换使用不同的 Git 版本,可以通过修改环境变量 `PATH` 来指定优先使用Git 路径。具体方法如下: - 打开系统的环境变量设置界面。 - 编辑 `PATH` 变量,将所需的 Git 版本路径调整至最前位置。 也可以创建批处理脚本来快速切换 Git 版本。例如: ```batch :: 切换到 Git v2.30 set PATH=C:\Program Files\Git-v2.30\bin;%PATH% :: 切换到 Git v2.35 set PATH=C:\Program Files\Git-v2.35\bin;%PATH% ``` ### 方法二:利用虚拟化工具隔离环境 借助容器技术(如 Docker)或虚拟机来运行不同版本的 Git。Docker 提供了官方的 Git 镜像,可以根据需求拉取特定版本的镜像并启动容器。例如: ```bash docker pull alpine/git:v2.30 docker run -it --rm alpine/git:v2.30 sh ``` 这种方式的优点在于完全隔离各个版本之间的依赖关系,避免冲突[^2]。 ### 方法三:基于 Python 的 pyenv-git 工具 类似于 Python 的版本管理器 pyenv,社区中有开发者维护了一个名为 **pyenv-git** 的工具用于简化 Git 不同版本间的切换操作。虽然该方案不如上述两种常见,但对于熟悉类似概念的人来说非常直观易用[^3]。 需要注意的是,在实际应用过程中如果涉及 SSH Key 或者用户身份认证方面的差异,则仍需按照既定流程完成相应配置以支持多账号场景下的正常工作流[^4][^5]。 --- ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值