WSL2环境下执行git push origin main终端无响应问题求助
Git push无响应排查方案
- 优先排查网络连通性
先确认你的WSL2环境可以正常访问GitHub:
若使用SSH协议连接远程仓库,执行ssh -T git@github.com测试连通性;若使用HTTPS协议,执行curl -I https://github.com查看是否能正常返回响应。WSL2默认经常出现DNS解析异常、代理配置不同步的问题,若测试不通先修复WSL2网络。 - 验证远程仓库地址正确性
执行git remote -v检查origin的地址是否存在拼写错误、多余字符,地址配置错误会导致请求无法正确发出,出现僵死情况。 - 开启调试日志定位卡住环节
执行如下命令打开Git调试模式,运行后可以看到每一步的执行日志,直接定位是卡在DNS解析、连接建立还是鉴权阶段:GIT_CURL_VERBOSE=1 GIT_TRACE=1 git push origin main - 修复WSL2 MTU不匹配问题
WSL2默认网卡MTU值和Windows宿主机不匹配是高频故障点,执行sudo ip link set dev eth0 mtu 1400临时调低MTU值后重试push,如果可以正常推送说明是MTU问题,可将该命令写入~/.bashrc实现开机自动配置。 - 检查是否存在超大提交文件
GitHub单文件上传限制为100MB,若提交中包含超出限制的文件也会出现无响应卡住的情况,执行以下命令查看仓库中是否存在超大文件:git ls-files --others --exclude-standard -z | xargs -0 ls -l | sort -k5,5rn - 排查凭证鉴权问题
若使用HTTPS协议连接远程仓库,可能是凭证管理器卡住导致鉴权失败无响应,执行git config --global credential.helper store切换为凭证存储模式,重试push时按提示输入GitHub用户名和个人访问令牌(PAT)即可,注意GitHub已不支持密码方式鉴权。
内容的提问来源于stack exchange,提问作者tms8bltrn
相关产品推荐
相关产品推荐

