同一台电脑使用多个账号对仓库进行Git提交

在.ssh文件夹中批量生成三个密钥

要在Windows下批量生成多个Git密钥,分别命名为codeup_1, codeup_2, codeup_3,并假设这些密钥将存储在用户的.ssh目录下,你可以使用以下批处理脚本来实现这一过程:

bash 复制代码
@echo off
setlocal enabledelayedexpansion

set "ssh_folder=%USERPROFILE%\.ssh"
if not exist "%ssh_folder%" mkdir "%ssh_folder%"

for /L %%i in (1,1,3) do (
    set "folder=codeup_%%i"
    echo Generating SSH keys for !folder!
    ssh-keygen -t rsa -f "%ssh_folder%\!folder!"
    echo Public key saved as %ssh_folder%\!folder!.pub
)

echo All SSH keys have been generated.
endlocal

Git配置与切换不同ssh密钥

场景:当需要用多个账号进行Git提交时候需要用到,如这段时间所有仓库要用a账号提交,过段时间要切换成b账号提交,这时候就需要在一台电脑上配置多个SSH密钥。

步骤

  • 参考: 如何在同一台电脑上配置多个SSH Key?

  • 1.生成 给每个账号生成不同的key,如 ** 在.ssh文件夹中批量生成三个密钥 ** 中生成的:codeup_1, codeup_2, codeup_3,这三个就可以对应三个账号了。

  • 然后将这三个密钥分别给三个帐号配置到阿里云效后台的SSH公钥中。

  • 配置.ssh/config文件,没有这个文件则新建一个,注意这个文件没有后缀名

    bash 复制代码
    Host codeup.aliyun.com
    HostName codeup.aliyun.com
    IdentityAgent none
    IdentitiesOnly yes
    IdentityFile ~/.ssh/codeup_1 
    PreferredAuthentications publickey

    codeup.aliyun.com的仓库都使用codeup5194这个key

切换不同账号

  • 写一个bat脚本,用于切换config文件中IdentityFile后面的内容

    bash 复制代码
    @echo off
    
    rem 设置新的 IdentityFile 内容
    set "new_identity=~/.ssh/需要替换的key文件名"
    
    rem 设置 SSH 配置文件路径
    set "ssh_config=%USERPROFILE%\.ssh\config"
    
    rem 检查 SSH 配置文件是否存在
    if not exist "%ssh_config%" (
        echo SSH 配置文件不存在:%ssh_config%
        exit /b
    )
    
    rem 使用 "type" 命令读取文件内容并替换
    type "%ssh_config%" | findstr /v /i /c:"IdentityFile" | findstr /v /i /c:"PreferredAuthentications" > "%ssh_config%.tmp"
    
    rem 将新的 IdentityFile 添加到临时文件末尾
    echo IdentityFile %new_identity% >> "%ssh_config%.tmp"
    echo PreferredAuthentications publickey >> "%ssh_config%.tmp"
    
    rem 替换原始 SSH 配置文件
    move /y "%ssh_config%.tmp" "%ssh_config%" > nul
    
    echo IdentityFile 已更新:%new_identity%
    
    rem 切换git提交账号
    git config --global user.name "自己的提交作者名"
    git config --global user.email "提交作者邮箱"

    多个账号可以创建多个bat脚本,每个脚本修改对应"需要替换的key文件名"、"自己的提交作者名"、"提交作者邮箱"即可

  • 运行脚本切换到对应账号绑定的密钥

  • 在Git Base命令行中输入ssh -t codeup.aliyun.com即可查看当前账号,或新建一个bat

    less 复制代码
    @echo off
    REM 查看当前用户名
    ssh -T git@codeup.aliyun.com
    pause
相关推荐
hhb_618几秒前
一键生成数据看板,ECharts实战演示
前端·javascript·echarts
Java后端的Ai之路7 分钟前
08_React组件API
前端·react.js·前端框架
小马不起床11 分钟前
零基础玩转 FastAPI_09:前端基础工程构建
前端·状态模式·fastapi
风骏时光牛马1 小时前
用户管理模块接口开发
前端
彭亚川Allen2 小时前
从零手搓 RAG 之检索全流程,给大模型接上自己的知识库
前端·后端·ai编程
IT_陈寒2 小时前
别让Java字符串拼接偷偷吃掉你的内存
前端·人工智能·后端
软件技术NINI2 小时前
圣罗兰彩妆html+css 4页
前端·css·html
2601_951615203 小时前
网站模板 网站网页模板下载
前端·网络·html
酷炫码神3 小时前
Day 1|HTML5:一个商城首页的骨架,从 DOCTYPE 到语义化
前端·html·html5
AI源码4 小时前
鲜花商城(HTML 版)
前端·html