在企业环境中使用GitKraken执行远程操作时,为什么会出现"格式错误的URL"错误?

Cae*_*lan 5 git proxy pac gitkraken zscaler

当使用GitKraken并尝试在我的公司环境中执行远程操作(推/拉/获取和可能克隆)时,我收到如下错误:

GitKraken错误

Fetch failed for 'origin'
malformed URL
[Proxy information]
Run Code Online (Sandbox Code Playgroud)

我的存储库只能在内部访问,上面的错误消息不是正确的远程.我通过验证了本地存储库中的正确远程git remote -v.我也验证了这不是git问题,因为我可以git通过命令行执行所有必要的操作.

我的组织的代理自动配置(PAC)文件已正确设置并返回DIRECT(意味着没有代理)我的远程.

问题:

  1. 为什么GitKraken在我没有配置代理时会使用代理?
  2. 为什么GitKraken使用外部代理作为内部地址?
  3. 我该如何解决这个问题并能够与我的遥控器进行交互?

Cae*_*lan 2

为什么我没有配置代理,GitKraken 却使用代理?

GitKraken 会自动从系统的代理设置(Internet 选项 > 连接 > LAN 设置)中提取代理配置。在您的情况下,您似乎已经在“自动配置”部分中配置了 PAC 文件。GitKraken(或其使用的库之一)正在读取此文件并确定如何联系外部系统。

为什么 GitKraken 对内部地址使用外部代理?

GitKraken(或其使用的库之一)似乎错误地假设了代理设置。当 GitKraken 启动时,它会连接到其更新服务器。在连接之前,它确定如何通过 PAC 文件连接到它。在这种情况下,您可能会使用代理进行外部 Internet 访问,此连接是通过您的代理进行的。当您尝试在远程执行操作时,不会再次发生此查找。它错误地重新使用内部存储库更新检查中的代理配置。

我该如何解决这个问题并能够与我的遥控器交互?

您有几个选择:

  1. 打开 GitKraken 时暂时禁用代理配置。您可以通过 Internet 选项 > 连接 > LAN 设置关闭所有代理。打开 GitKraken,等待它完全启动。重新打开您的代理设置。您应该能够正常执行操作。
  2. 修改您的代理自动配置 (PAC) 文件以返回DIRECT(无代理)GitKraken 更新服务器。这将“欺骗”GitKraken 认为代理不是必需的,并且不会尝试将其用于本地流量。我建议配置您的 PAC 文件以返回DIRECT以下通配符:*://*.gitkraken.com/*

例如在FindProxyForURL函数中:if (shExpMatch(url, "*://*.gitkraken.com/*")) { return "DIRECT"; }

注意:如果您的组织的防火墙阻止直接访问互联网,您可能需要格外小心,因为这可能会影响您访问公共存储库(例如 GitHub 上的存储库)的能力。您可能需要为外部存储库保留代理,并为内部存储库执行 #1 选项。

  • 我有同样的问题,遗憾的是这两种解决方案都不适合我。它运行的环境不允许更改 LAN 设置,也不允许修改 PAC。我怀疑大多数公司环境都是相似的。所以现在我必须使用 TortioiseGIT 进行所有推/拉操作,直到 GitKraken 修复这个问题。假设他们确实修复了它...... (2认同)