【问题标题】:Is there a way to make git over http timeout?有没有办法让 git 超过 http 超时?
【发布时间】:2011-09-21 11:23:57
【问题描述】:

我有一个自动运行 git clone/pull 的脚本(这实际上发生在 jenkins CI 内部,但我的问题更笼统)。远程 git 服务器是基于 HTTPS 的。带有 git 客户端的机器有一个不稳定的 DSL 互联网连接,因此它有时会重新连接并更改 IP 地址,从而失去所有现有的连接。当 git 客户端运行时连接失败时,客户端永远不会成功,但它也不会因超时而失败,所以我的脚本挂断了。

我想设置客户端,使其在一段时间后超时(以便脚本可以重试、记录失败或采取任何其他操作)。但是我在 git-config 手册页中没有找到任何超时选项。我找到了a related question,但它仅适用于 SSH 连接。你知道http服务器是否有替代品吗?

【问题讨论】:

  • 如果你想修补 git 本身以获取环境变量 GIT_HTTP_CONNECT_TIMEOUT 和/which_overrides http.connecttimeout in ~/.gitconfig,请参阅 this answer

标签: git http timeout jenkins


【解决方案1】:

CAD 大佬的回答补充:

还有

git config --global http.lowSpeedLimit 1000
git config --global http.lowSpeedTime 600

工作正常。

上例表示当速度低于 1KB/s 持续 600 秒(10 分钟)时,远程操作将阻塞,该操作将阻塞。

【讨论】:

  • 绝对不行。尝试:git clone --verbose --mirror --depth=1 http://git.deha.vn:1080/bienhoang/deha-command.git
【解决方案2】:

你可以试试

http.lowSpeedLimit, http.lowSpeedTime

如果 HTTP 传输速度较慢 比 http.lowSpeedLimit 更长 比 http.lowSpeedTime 秒, 传输被中止。可以被覆盖 由 GIT_HTTP_LOW_SPEED_LIMIT 和 GIT_HTTP_LOW_SPEED_TIME 环境 变量。

【讨论】:

  • 这似乎有效,谢谢。至少我有一段时间没看到问题了。
  • @manojlds http.lowSpeedLimit 的单位是什么我设置为 10kbps
【解决方案3】:

将此添加到 .gitconfig ...

[http]
lowSpeedLimit = 1000
lowSpeedTime = 20

lowSpeedLimit 是每秒字节数

我称之为 Codeplex 子句。

【讨论】:

    猜你喜欢
    • 2023-04-08
    • 1970-01-01
    • 2017-12-07
    • 2020-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-20
    相关资源
    最近更新 更多