淄博市网站建设_网站建设公司_Sketch_seo优化
2025/12/28 8:19:56 网站建设 项目流程

方案一:修改Git全局配置(最简单)

cmd

# 1. 设置Git全局使用SSH代替HTTPS git config --global url."git@github.com:".insteadOf "https://github.com/" # 2. 设置SSH命令使用您的密钥 git config --global core.sshCommand "ssh -i %USERPROFILE%\.ssh\id_ed25519" # 3. 验证配置 git config --global --list | findstr "insteadof\|sshCommand"

优点:配置简单,一键完成
缺点:所有仓库使用同一密钥

方案二:创建SSH配置文件(最推荐)

  1. 创建或编辑SSH配置文件:

    text

    文件位置:C:\Users\你的用户名\.ssh\config
  2. 添加以下内容:

    config

    # GitHub Host github.com HostName github.com User git IdentityFile ~/.ssh/id_ed25519 IdentitiesOnly yes PreferredAuthentications publickey # 可选:为不同GitHub账户配置不同密钥 Host github-work HostName github.com User git IdentityFile ~/.ssh/work_key
  3. 设置文件权限(在Git Bash中):

    bash

    chmod 600 ~/.ssh/config

优点:灵活,支持多账户,符合SSH标准

方案三:Windows OpenSSH服务(最稳定)win+x

powershell

# 以管理员身份运行PowerShell # 1. 启用SSH-Agent服务 Set-Service ssh-agent -StartupType Automatic # 2. 启动服务 Start-Service ssh-agent # 3. 添加密钥到代理 ssh-add $HOME\.ssh\id_ed25519 # 4. 检查已加载的密钥 ssh-add -l

优点:系统级服务,重启后自动加载密钥


🔍 第四部分:验证配置是否成功

4.1 基础测试

cmd

# 测试SSH连接 ssh -T git@github.com

预期输出

text

Hi 用户名! You've successfully authenticated, but GitHub does not provide shell access.

4.2 详细诊断

创建诊断脚本check_ssh.bat

batch

@echo off echo ===== SSH配置诊断工具 ===== echo. echo [1] 检查密钥文件... if exist "%USERPROFILE%\.ssh\id_ed25519" ( echo ✓ 找到私钥文件 ) else ( echo ✗ 未找到私钥文件,请先生成SSH密钥 ) echo. echo [2] 检查SSH配置文件... if exist "%USERPROFILE%\.ssh\config" ( type "%USERPROFILE%\.ssh\config" echo. ) else ( echo ℹ 未找到config文件,将使用默认配置 ) echo [3] 测试GitHub连接... ssh -T git@github.com 2>&1 | findstr "successfully" >nul if %errorlevel%==0 ( echo ✓ SSH连接测试成功 ) else ( echo ✗ SSH连接测试失败 echo 请检查:1.公钥是否添加到GitHub 2.网络连接 ) echo. echo [4] 测试Git操作... echo 正在克隆测试仓库... git clone git@github.com:github/gitignore.git ssh-test-temp --depth=1 2>nul if exist "ssh-test-temp" ( echo ✓ Git克隆测试成功 rmdir /s /q ssh-test-temp 2>nul ) else ( echo ✗ Git克隆测试失败 ) echo. echo ===== 诊断完成 ===== pause

🚀 第五部分:日常使用命令

5.1 基本克隆命令

cmd

# 基本格式 git clone git@github.com:用户名/仓库名.git # 带分支和重命名 git clone -b 分支名 git@github.com:用户名/仓库名.git 自定义目录名 # 示例 git clone git@github.com:microsoft/vscode.git git clone -b main git@github.com:facebook/react.git react-project

5.2 特殊场景操作

cmd

# 1. 克隆包含子模块的仓库 git clone --recursive git@github.com:用户名/仓库名.git # 2. 浅克隆(只获取最新提交,加快速度) git clone --depth=1 git@github.com:用户名/仓库名.git # 3. 克隆特定标签版本 git clone -b v1.0.0 git@github.com:用户名/仓库名.git # 4. 限制克隆深度和过滤文件 git clone --filter=blob:none git@github.com:用户名/大仓库名.git

5.3 切换已有仓库为SSH

cmd

# 进入仓库目录 cd 仓库目录 # 查看当前远程地址 git remote -v # 修改为SSH地址(假设原地址是HTTPS) git remote set-url origin git@github.com:用户名/仓库名.git # 验证修改 git remote -v

📁 第六部分:实用脚本工具

6.1 通用克隆脚本gclone.bat

batch

@echo off echo GitHub SSH克隆工具 echo ==================== if "%1"=="" goto usage set "repo=%1" set "branch=%2" set "target=%3" :: 处理输入格式 echo %repo% | findstr "^git@" >nul if errorlevel 1 ( echo %repo% | findstr "^https://" >nul if errorlevel 1 ( :: 用户输入的是 用户名/仓库名 格式 set "repo=git@github.com:%repo%.git" ) else ( :: 将HTTPS地址转换为SSH地址 set "repo=%repo:https://github.com/=git@github.com:%" set "repo=%repo:/=.git%" ) ) :: 构建命令 set "cmd=git clone %repo%" if not "%branch%"=="" set "cmd=%cmd% -b %branch%" if not "%target%"=="" set "cmd=%cmd% %target%" echo. echo 执行命令:%cmd% echo. %cmd% if %errorlevel%==0 ( echo ✓ 克隆成功! ) else ( echo ✗ 克隆失败,请检查网络或仓库地址 ) goto :eof :usage echo 使用方法: echo gclone 用户名/仓库名 [分支] [目标目录] echo gclone HTTPS地址 [分支] [目标目录] echo gclone SSH地址 [分支] [目标目录] echo. echo 示例: echo gclone microsoft/vscode echo gclone https://github.com/facebook/react.git main react-app echo gclone git@github.com:vuejs/vue.git pause

6.2 批量克隆脚本clone-multi.bat

batch

@echo off echo 批量克隆工具 echo ============= setlocal enabledelayedexpansion :: 定义要克隆的仓库列表 set "repos[0]=microsoft/vscode" set "repos[1]=facebook/react" set "repos[2]=vuejs/vue" set "repos[3]=tensorflow/tensorflow" set "repos[4]=pytorch/pytorch" echo 可用仓库: for /l %%i in (0,1,4) do ( echo [%%i] !repos[%%i]! ) echo. echo 选择模式: echo 1. 克隆单个仓库 echo 2. 克隆所有仓库 echo 3. 自定义仓库列表 set /p mode="请选择(1/2/3): " if "%mode%"=="1" ( set /p index="输入仓库编号(0-4): " for /l %%i in (0,1,4) do ( if "!index!"=="%%i" ( echo 正在克隆: !repos[%%i]! git clone git@github.com:!repos[%%i]!.git ) ) ) else if "%mode%"=="2" ( echo 开始克隆所有仓库... for /l %%i in (0,1,4) do ( echo. echo [!repos[%%i]!] git clone git@github.com:!repos[%%i]!.git ) echo. echo 所有仓库克隆完成! ) else if "%mode%"=="3" ( echo 每行输入一个仓库(格式:用户名/仓库名),空行结束: set i=0 :input_loop set /p repo="> " if not "!repo!"=="" ( set "custom[!i!]=!repo!" set /a i+=1 goto input_loop ) echo. echo 开始克隆自定义仓库... for /l %%j in (0,1,!i!) do ( echo [!custom[%%j]!] git clone git@github.com:!custom[%%j]!.git echo. ) ) pause

🔧 第七部分:进阶配置与优化

7.1 多GitHub账户配置

config

# ~/.ssh/config 文件内容 # 个人账户(默认) Host github.com HostName github.com User git IdentityFile ~/.ssh/id_ed25519_personal IdentitiesOnly yes # 工作账户 Host github-work HostName github.com User git IdentityFile ~/.ssh/id_rsa_work IdentitiesOnly yes # 其他Git托管服务 Host gitlab.com HostName gitlab.com User git IdentityFile ~/.ssh/id_ed25519_gitlab

使用不同账户克隆:

cmd

# 使用个人账户(默认) git clone git@github.com:个人用户名/仓库.git # 使用工作账户 git clone git@github-work:公司用户名/仓库.git

7.2 Git配置优化

cmd

# 提高大文件传输性能 git config --global http.postBuffer 524288000 # 启用文件系统缓存(加速状态检查) git config --global core.fscache true # 设置并发线程数(提高克隆速度) git config --global core.packedGitLimit 512m git config --global core.packedGitWindowSize 512m # 启用压缩(节省带宽) git config --global core.compression 9 # 设置SSH连接超时 git config --global core.sshCommand "ssh -o ConnectTimeout=30 -i %USERPROFILE%\.ssh\id_ed25519"

7.3 Windows Terminal配置文件

在Windows Terminal的settings.json中添加:

json

{ "profiles": { "defaults": { "environment": { "GIT_SSH_COMMAND": "ssh -i %USERPROFILE%\\.ssh\\id_ed25519" } } } }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询