我刚开始在我的工作流程中使用逃犯......非常有用!但我似乎遇到了一种奇怪的烦恼,我希望有人可能有解决方案:
当我运行 :Gpush 时,有时控制永远不会返回到 vi。Vi 一直挂在输出上,git push
直到我 Ctrl+C 杀死“它”。我也尝试过安装vim-dispatch,并且在tmux中,结果是git push
窗格永远不会关闭。这更烦人,因为我必须切换到该窗格以 Ctrl+C 它。
奇怪的是,如果 I ps
,我没有看到任何 git 进程正在运行,所以我不确定到底挂的是什么……但是 Ctrl+C 确实杀死了“它”,无论“它”是什么,并且控制权返回给 vi。
我发现了一个提到类似行为的已关闭 github 问题,但从未发布过解决方案……看来问题最终只是“消失”了 OP,因此问题已关闭。
然而,一段时间后,第二个人回复了这个问题,说他遇到了类似的问题,这似乎是在 git 产生某种“凭据缓存守护进程”时发生的。我没有像他那样使用凭证助手,所以这不是我的确切问题......但这让我注意到了其他事情:
我已将 ssh 配置为保持连接打开 5 分钟(ControlPersist 5m
在我的 ~/.ssh/config 中)。如果我有一段时间没有推送,git push
会导致 ssh 产生一个进程来保持连接。这会触发问题。5 分钟后,ssh 退出,这将解决问题并导致 tmux 窗格关闭。如果我在连接仍然打开时再次推送,它工作正常。
所以,问题似乎是当 git 产生另一个进程时。当我在命令行上运行 git 时,这显然不会引起任何问题,那么为什么会在这里引起问题呢?我能做些什么呢?我不想禁用 ssh 持久连接,因为这很有用......