解决VSCode向GitHub提交代码失败的问题(国内网络环境)

解决 VSCode 向 GitHub 提交代码失败的问题(国内网络环境)

问题描述

在中国大陆使用 VSCode 向 GitHub 仓库提交代码时,即使开启了代理软件,仍然会遇到提交失败的情况。这是因为 VSCode 使用 Git 来提交代码,而 Git 默认不会自动使用系统代理,需要单独配置。

解决方案

方法一:配置 Git 全局代理(推荐)

这是最常用也是最简单的方法,适合大多数场景。

打开终端或命令行,执行以下命令:

1
2
3
# 配置 HTTP/HTTPS 代理
git config --global http.proxy http://127.0.0.1:端口号
git config --global https.proxy http://127.0.0.1:端口号

实际使用示例:

1
2
3
# 假设你的代理端口是 7890
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890

如何找到代理端口号:

  1. 打开你的代理软件(Clash、V2Ray、Shadowsocks 等)
  2. 在设置中查找 HTTP 端口或 SOCKS 端口
  3. 常见端口号:78901080789110809

方法二:只为 GitHub 设置代理

如果你不想全局使用代理,只想在访问 GitHub 时使用代理,可以使用这个方法:

1
2
git config --global http.https://github.com.proxy http://127.0.0.1:7890
git config --global https.https://github.com.proxy http://127.0.0.1:7890

这样配置后,只有访问 GitHub 时才会使用代理,访问其他 Git 仓库不受影响。

方法三:使用 SOCKS5 代理

如果你的代理软件只提供 SOCKS5 代理(部分代理工具默认使用 SOCKS5),需要使用以下配置:

1
2
git config --global http.proxy socks5://127.0.0.1:端口号
git config --global https.proxy socks5://127.0.0.1:端口号

示例:

1
2
git config --global http.proxy socks5://127.0.0.1:1080
git config --global https.proxy socks5://127.0.0.1:1080

常用管理命令

查看当前 Git 配置

1
git config --global --list

或者只查看代理配置:

1
2
git config --global --get http.proxy
git config --global --get https.proxy

取消代理配置

如果以后不需要代理了,或者想切换其他代理方式:

1
2
git config --global --unset http.proxy
git config --global --unset https.proxy

使用 SSH 方式推送的额外配置

如果你使用 SSH 方式克隆和推送代码(URL 格式为 [email protected]:username/repo.git),上述 HTTP 代理配置不会生效,需要配置 SSH 代理。

Windows 系统

编辑或创建文件 C:\Users\你的用户名\.ssh\config,添加以下内容:

1
2
3
4
Host github.com
HostName github.com
User git
ProxyCommand connect -H 127.0.0.1:7890 %h %p

macOS/Linux 系统

编辑或创建文件 ~/.ssh/config,添加以下内容:

1
2
3
4
Host github.com
HostName github.com
User git
ProxyCommand nc -X connect -x 127.0.0.1:7890 %h %p

其他可能遇到的问题及解决方案

1. 网络超时

如果配置代理后仍然出现超时,可以增加 Git 的缓冲区大小和超时时间:

1
2
3
git config --global http.postBuffer 524288000
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999

2. 代理软件设置

确保代理软件的设置中:

  • 开启了「允许来自局域网的连接」或类似选项
  • HTTP 代理端口处于监听状态
  • 没有设置仅代理特定应用(排除了 Git)

3. 防火墙问题

检查 Windows 防火墙或安全软件是否拦截了 Git 的网络请求。

4. 验证代理是否生效

配置完成后,可以通过以下命令测试:

1
git ls-remote https://github.com/username/repo.git

如果能正常显示分支信息,说明代理配置成功。

完整操作流程

  1. 确认代理端口:打开代理软件,记下端口号(如 7890)

  2. 配置 Git 代理

    1
    git config --global http.proxy http://127.0.0.1:7890git config --global https.proxy http://127.0.0.1:7890
  3. 验证配置

    1
    git config --global --list
  4. 重启 VSCode:关闭并重新打开 VSCode

  5. 测试提交:尝试提交代码到 GitHub

总结

在国内使用 VSCode 向 GitHub 提交代码时,代理软件无法直接为 Git 提供代理服务,需要手动配置 Git 的代理设置。最简单的方法是使用 git config 命令配置全局 HTTP 代理,配置完成后记得重启 VSCode 使配置生效。

如果使用 SSH 方式推送代码,还需要额外配置 SSH 代理。根据实际情况选择合适的配置方法,就能顺利解决提交失败的问题。