一、前提条件

  • Clash 已安装并运行:确保 Clash 正在运行,并且加载了正确的配置文件。
  • 代理端口:Clash 的 mixed-port 设置为 7890(默认 HTTP 和 SOCKS5 代理端口)。
  • Git 已安装:确保你已安装 Git,并且可以通过命令行运行 git --version 验证。

二、步骤

1. 确认 Clash 代理状态

  • 启动 Clash(例如 Clash for Windows)。
  • 检查配置文件(通常是 config.yaml),确认以下内容:
    1
    mixed-port: 7890
  • 确保 Clash 已运行,并且代理服务监听在 127.0.0.1:7890。可以用以下命令检查:
    1
    netstat -ano | findstr 7890
    如果返回类似 TCP 127.0.0.1:7890 0.0.0.0:0 LISTENING,说明端口正常开放。

2. 配置 Git 使用 Clash 代理

  • 打开命令行(CMD 或 Git Bash)。
  • 设置 Git 的全局代理,使用 HTTP 协议(因为 Clash 的 mixed-port 支持 HTTP):
    1
    2
    git config --global http.proxy http://127.0.0.1:7890
    git config --global https.proxy http://127.0.0.1:7890
  • 解释
    • http.proxy:设置 HTTP 协议的代理。
    • https.proxy:设置 HTTPS 协议的代理(GitHub 使用 HTTPS)。
    • 127.0.0.1:7890:Clash 的本地代理地址和端口。

3. 验证代理配置

  • 检查 Git 是否正确应用了代理设置:
    1
    2
    git config --global --get http.proxy
    git config --global --get https.proxy
  • 如果返回 http://127.0.0.1:7890,说明配置成功。

4. 测试代理连接

  • 测试 Git 是否能通过代理访问 GitHub:
    1
    git ls-remote https://github.com/{User}/{RepositoryName}.git
  • 成功输出示例
    1
    2
    3
    00c87001b3c99bec7a6f1ef4b342c9a4f3d668d7        HEAD
    00c87001b3c99bec7a6f1ef4b342c9a4f3d668d7 refs/heads/main
    ...
  • 如果失败(例如超时或连接错误),检查 Clash 是否运行,或者端口是否正确。

5. 使用 Git 操作

  • 配置成功后,可以正常使用 Git 命令,例如克隆仓库:
    1
    git clone https://github.com/{User}/{RepositoryName}.git
  • 或者拉取更新:
    1
    git pull

三、常见问题及解决方法

  1. 错误:无法连接到 127.0.0.1:7890

    • 原因:Clash 未运行,或端口未监听。
    • 解决
      • 启动 Clash,确保配置文件中的 mixed-port7890
      • 检查端口:netstat -ano | findstr 7890
      • 如果端口被占用,修改 Clash 配置中的 mixed-port(例如改为 7891),然后更新 Git 配置:
        1
        2
        git config --global http.proxy http://127.0.0.1:7891
        git config --global https.proxy http://127.0.0.1:7891
  2. Clash 运行正常,但 Git 仍无法连接

    • 原因:Clash 的代理规则可能将 GitHub 设为直连(DIRECT)。
    • 解决
      • 编辑 Clash 配置文件,添加规则:
        1
        - DOMAIN-SUFFIX,github.com,PROXY
      • 保存并重启 Clash。
  3. 不需要代理时如何取消

    • 清除代理设置:
      1
      2
      git config --global --unset http.proxy
      git config --global --unset https.proxy

四、可选:使用环境变量(临时配置)

如果你不想修改全局配置,可以在当前命令行会话中设置环境变量:

  • CMD:
    1
    2
    3
    set HTTP_PROXY=http://127.0.0.1:7890
    set HTTPS_PROXY=http://127.0.0.1:7890
    git clone https://github.com/{User}/{RepositoryName}.git
  • Git Bash:
    1
    2
    3
    export HTTP_PROXY=http://127.0.0.1:7890
    export HTTPS_PROXY=http://127.0.0.1:7890
    git clone https://github.com/{User}/{RepositoryName}.git

这种方式只在当前会话有效,关闭窗口后失效。


五、总结

通过以上步骤,你应该能成功配置 Git 使用 Clash 代理。如果你的 Clash 端口不是 7890,只需将教程中的端口号替换为实际值即可。配置完成后,Git 将通过 Clash 访问远程仓库(如 GitHub),非常适合需要代理的网络环境。