git - Ubuntu VM git fetch 挂起

标签 git ssh virtual-machine strace

尝试在运行 ubuntu(主机 Windows 10)的 VM 上获取数据时,我遇到了相当奇怪的体验。我需要从 repo 获取更改到我的计算机上,所以我使用了 git fetch,除了它卡在终端上。
所以基本上我有这个($来自终端,不是命令的一部分):

$ git fetch 
cursor stuck here
然后我尝试了这个(我希望它可能比 fetch 更强):
$ git fetch --all
cursor stuck here
我在 fetch 调用上运行了 strace,这是我不太明白发生了什么,但它基本上停在这样的一行:
read(5,
我注意到一些 ssh 目录不存在(来自 strace 的一些 -1 ENOENT 错误),所以我测试了我的 ssh 命令,它们也挂了。或者至少我认为。
对于我的一个别名,它似乎确实挂了。但是,当我将该别名复制/粘贴到终端时,它最终工作了(只是非常缓慢)。然后,我测试了我的 ssh 别名,它们也开始正常工作。奇怪的...
此时我尝试了git fetch又成功了!!!
但是,我不知道发生了什么,有人知道吗?这是一个值得研究的问题吗?
编辑:
完成一个 fetch 调用后,我无法再获取。 SSH 现在不一致。 git pull 挂起。
git pull 上的 strace 以 a 结尾
wait4(4439, 
此外,似乎有很多 -1 ENOENT 错误提示各种 .git 目录。
这对于 ssh 和 git 命令来说只是一个速度问题吗?
EDIT2:
所以我尝试了评论中的建议(将 GIT_TRACE 设置为 2,因为我在 ubuntu 中所以起诉导出)。它显示了引擎盖下每个 git 调用的情况,并且由于某种原因 git pull/git fetch freeze 大约在中途。大约 20 分钟后,它们解冻并再次工作。
我可能会离开我的电脑并重新启动虚拟机,明天(漫长的一天)看看它。有没有人有任何建议来加快速度/为什么会发生这种情况?

最佳答案

@NateElredge 似乎就在这里,似乎是网络问题。我认为我的 vm 一定是过度劳累或其他原因,在重新启动 vm 和我的主机并让它们在一夜之间关闭 ssh/git fetch/git pull 现在可以正常工作。
编辑 2:所以这似乎只是一个虚拟盒子问题。显然,它只会大大降低网络连接速度。
编辑 3:解决这个问题的方法是下载一个更快的终端。我最终从 here 下载了 Alacritty .对于 git 和 npm/expo,它的运行速度比 Ubuntu 20.04 的默认终端快得多。
对于那些不想点击链接的人,这是 tl;博士 :
----------- [Arch Linux] -----------# pacman -S alacritty ----------- [Fedora Linux] -----------# dnf copr enable pschyska/alacritty# dnf install alacritty----------- [Debian 和 Ubuntu] -----------$ sudo add-apt-repository ppa:mmstick76/alacritty$ sudo apt install alacritty唯一的缺点是 Alacritty 没有终端窗口(至少我似乎不知道如何使用它们)。但是,不要绝望,您可以安装 tmux(对于 ubuntu:$sudo apt install tmux)。

关于git - Ubuntu VM git fetch 挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62568255/

相关文章:

git - 删除分支后识别 Git 中的提交分支

git - 如何以非交互方式挑选评论?

python - Paramiko:使用 'select' 异步读取长 shell 脚本输出

python : javabridge virtual machine only works once

compiler-construction - 动态基本 block 与静态基本 block 和分支

c - "no newline at end of file"C

git - 如何还原 "git rm -r ."?

git - 推送被拒绝,未检测到 Cedar 支持的应用程序

ssh - sudo_user 的 Ansible 和 ForwardAgent

git push 在 MacOS Sierra 10.12.5 中失败