2017-03-13 17 views
2

当使用GitKraken并试图执行远程操作(推/拉/读取和可能克隆)在我的企业环境中,我得到的是看起来像这样的错误:为什么在公司环境中使用GitKraken执行远程操作时,出现“格式错误的URL”错误?

GitKraken Error

Fetch failed for 'origin' 
malformed URL 
[Proxy information] 

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

我的组织的代理自动配置(PAC)文件设置正确,并且返回DIRECT(表示无代理)。

问题:

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

回答

1

为什么GitKraken在没有配置代理时使用代理?

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

为什么GitKraken将外部代理用于内部地址?

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

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

您有几种选择:

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

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

注意:如果您的组织具有阻止直接访问Internet防火墙,你可能需要采取因为此可能会影响您访问公共回购站(例如GitHub上的回购站)的能力。您可能需要为外部存储库保留代理,并为内部存储库执行#1选项。

+0

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

+0

看起来这个问题在[version 2.2.1](https://support.gitkraken.com/release-notes/current) –

相关问题