git pull/clone在一个网络上的版本列表后如何挂起,在其他网络上如何工作:如何调试和修复?
在我的ubuntu笔记本电脑上,git pull在到达rev list命令时会冻结,请参见下面的输出:git pull/clone在一个网络上的版本列表后如何挂起,在其他网络上如何工作:如何调试和修复?,git,ubuntu,router,Git,Ubuntu,Router,在我的ubuntu笔记本电脑上,git pull在到达rev list命令时会冻结,请参见下面的输出: GIT_TRACE=1 GIT_CURL_VERBOSE=1 git pull --verbose trace: exec: 'git-pull' '--verbose' trace: run_command: 'git-pull' '--verbose' trace: built-in: git 'rev-parse' '--git-dir' trace: built-in: git 're
GIT_TRACE=1 GIT_CURL_VERBOSE=1 git pull --verbose
trace: exec: 'git-pull' '--verbose'
trace: run_command: 'git-pull' '--verbose'
trace: built-in: git 'rev-parse' '--git-dir'
trace: built-in: git 'rev-parse' '--is-bare-repository'
trace: built-in: git 'rev-parse' '--show-toplevel'
trace: built-in: git 'ls-files' '-u'
trace: built-in: git 'symbolic-ref' '-q' 'HEAD'
trace: built-in: git 'config' '--bool' 'branch.upgrade-to-rails3.rebase'
trace: built-in: git 'config' '--bool' 'pull.rebase'
trace: built-in: git 'rev-parse' '-q' '--verify' 'HEAD'
trace: built-in: git 'fetch' '-v' '--update-head-ok'
trace: run_command: 'ssh' 'my_repo@mydomain.com' 'git-upload-pack '\''/home/mana/git/chc.git'\'''
trace: run_command: 'rev-list' '--objects' '--stdin' '--not' '--all' '--quiet'
同一网络上的其他计算机(windows和mac)可以从同一个repo(位于专用服务器上)获取数据。然后我把我的笔记本电脑带到另一个网络,工作正常
我尝试过的事情:
- 将eth0上的MTU设置为1492(正如我看到的,对于一些人来说,默认值1500会导致问题)
- 确认我可以成功地ssh到服务器
- 从以前的挂起尝试中清除挂起的sshd进程
- 远程服务器上的git gc
那么,在one网络的路由器中,加上我特定版本的ubuntu可能会导致这种情况,我如何调试它呢?如果你怀疑ssh有什么问题,为什么不创建一个脚本my ssh:
#!/bin/sh
ssh -v $@
然后
这样,您就可以说出进程在ssh中挂起的位置
(这应该是一个注释,但我无法格式化代码!)我的Mac上也有类似的问题,ssh的某些git命令可以工作,其他命令似乎挂在终端上而没有任何响应
git remote -v show origin -- would hang
git push origin -- would work
Swithing router,通过使用我的手机作为无线接入点,这两个命令都有效
解决方案:
Host *
IPQoS 0x00
/Users/[your_user]/.ssh/config
Host *
IPQoS 0x00