同一台电脑使用多个账号对仓库进行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
相关推荐
曼巴UE52 小时前
UE FString, FName ,FText 三者转换,再次学习,官方文档理解
服务器·前端·javascript
行走的陀螺仪3 小时前
高级前端 Input 公共组件设计方案(Vue3 + TypeScript)
前端·javascript·typescript·vue·组件设计方案
一颗不甘坠落的流星3 小时前
【Antd】基于 Upload 组件,导入Json文件并转换为Json数据
前端·javascript·json
LYFlied4 小时前
Vue2 与 Vue3 虚拟DOM更新原理深度解析
前端·javascript·vue.js·虚拟dom
Lucky_Turtle4 小时前
【Node】npm install报错npm error Cannot read properties of null (reading ‘matches‘)
前端·npm·node.js
小飞侠在吗4 小时前
vue shallowRef 与 shallowReacitive
前端·javascript·vue.js
惜分飞4 小时前
sql server 事务日志备份异常恢复案例---惜分飞
前端·数据库·php
GISer_Jing5 小时前
WebGL实例化渲染:性能提升策略
前端·javascript·webgl
烟锁池塘柳05 小时前
【技术栈-前端】告别“转圈圈”:详解前端性能优化之“乐观 UI” (Optimistic UI)
前端·ui