特定Git仓库push到Github时挂起无响应问题求助
问题根因
你遇到的推送挂起问题和返回的Tk弃用警告直接相关:此前配置的core.askpass = git-gui--askpass依赖Tk图形库实现凭证弹窗,当前系统内置的Tk版本已被标记为弃用,触发警告后程序异常挂起,直接阻断了Git推送的凭证校验流程。
其他项目可以正常推送的原因大概率是其余项目使用SSH密钥免密推送,或者项目级Git配置覆盖了全局的core.askpass设置,只有当前问题仓库使用HTTPS协议推送,需要调用凭证询问工具才会触发故障。
修复步骤
- 首先移除错误的全局askpass配置,执行命令:
git config --global --unset core.askpass - 检查当前仓库的远程协议,执行命令:
git remote -v
如果输出的origin地址为https开头,建议优先切换为SSH协议,避免后续凭证询问问题,切换命令为:git remote set-url origin <你的仓库SSH地址> - 若要继续使用HTTPS协议推送,配置对应系统的原生凭证存储工具即可:
- Windows系统执行:
git config --global credential.helper manager-core - MacOS系统执行:
git config --global credential.helper osxkeychain - Linux系统执行:
git config --global credential.helper libsecret
- Windows系统执行:
- 完成配置后执行
git push测试推送是否恢复正常。
进阶排查
如果执行上述操作后仍存在推送挂起问题,可以执行带调试日志的推送命令定位具体卡顿环节:GIT_TRACE=1 GIT_CURL_VERBOSE=1 git push
根据输出的实时日志即可定位具体故障点。
内容的提问来源于stack exchange,提问作者mikeym
相关产品推荐
相关产品推荐

