git push到远程时卡住了

13
当我尝试推送到远程存储库时,它被卡住了。 我尝试 ssh -T git@github.com ,然后收到成功的消息:
“您已经成功通过身份验证,但GitHub不提供Shell访问权限。”
当我使用详细选项时,我得到一个消息,它正在推送: git push -v origin xyz "Pushing to git@github.com:repo.git"
大约10分钟后,它超时并显示另一条消息:
“与github.com的连接被远程主机关闭。”
我的终端没有回应。
我尝试过以下方法,但都无济于事:
- 在推送中包含 --dry-run 交换结果相同。 - git clean -d -f -i 后跟 git gc --auto 我使用的是macOS High Sierra,并且使用SSH身份验证。

记住,您可以取消命令以重新获得控制。ctrl + c - evolutionxbox
1个回答

20

结果发现被卡住是因为一个第三方工具在(<repository-root>/.git/hooks/pre-push)放置了一个pre-push commit hook。

为了进行调试,我使用了GIT_TRACE命令:

$ GIT_TRACE=1 git push -v origin xyz
11:47:11.950226 git.c:340               trace: built-in: git 'push' '-v' 'origin' ‘xyz’
Pushing to git@github.com:repo.git
11:47:11.951795 run-command.c:626       trace: run_command: 'ssh' 'git@github.com' 'git-receive-pack ‘\’’repo.git'\'''
11:47:13.100323 run-command.c:626       trace: run_command: '.git/hooks/pre-push' 'origin' 'git@repo.git'

删除 pre-push 文件解决了问题。


工作时没有删除任何东西,只是添加了GIT_TRACE=1! - Chachni

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接