同一台电脑使用多个账号对仓库进行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
相关推荐
中工钱袋14 分钟前
前端请求到底是从哪里发出去的?
前端
じòぴé南冸じょうげん3 小时前
若依框架favicon.ico缓存更新问题解决方案:本地生效但线上未更新
前端·javascript·前端框架·html
狮子座的男孩3 小时前
js基础高级:01、数据类型(typeof、instanceof、===的使用)、数据与变量与内存(定义、赋值与内存关系、引用变量赋值、js调函数传参)
前端·javascript·经验分享·数据类型·数据与变量与内存·赋值与内存关系·引用变量赋值
Cyclo-6 小时前
PDFJS 在React中的引入 使用组件打开文件流PDF
前端·react.js·pdf
椒盐螺丝钉8 小时前
Vue Router应用:组件跳转
前端·javascript·vue.js
顾安r9 小时前
11.20 开源APP
服务器·前端·javascript·python·css3
敲敲了个代码9 小时前
CSS 像素≠物理像素:0.5px 效果的核心密码是什么?
前端·javascript·css·学习·面试
少云清9 小时前
【软件测试】5_基础知识 _CSS
前端·css·tensorflow
倔强青铜三10 小时前
AI编程革命:React + shadcn/ui 将终结前端框架之战
前端·人工智能·ai编程
天外飞雨道沧桑10 小时前
前端开发 Cursor MCP 提效工具配置
前端·vscode·ai编程·开发工具·cursor