7

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

GitKraken 错误

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

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

我的组织的代理自动配置 (PAC) 文件已正确设置并DIRECT为我的遥控器返回(意味着没有代理)。

问题:

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

4 回答 4

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"; }

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

于 2017-03-13T18:22:53.657 回答
2

回答您的问题“为什么 GitKraken 在我没有配置代理时使用代理?” Mac上的GitKraken使用全局网络配置(网络首选项>选择网络接口>单击高级...>并选择代理选项卡。如果您配置了“自动代理配置”或“HTTP”或“HTTPS”代理设置,那么就是这样被使用。

如果您选择了“自动代理发现”或“自动代理配置”,那么“绕过这些主机和域的代理设置”通常不起作用。

我怎样才能使这项工作?我尝试了多种解决方案,但对我有用的解决方案如下 -

我在 GitKraken 6.5.3 版上。我也在代理后面工作。GitKraken 使用全局 ~./gitconfig 文件,如果您在那里配置了代理,那么它会在没有其他配置的情况下使用它。我有特定的设置 -

[http]
    sslVerify = true
    proxy = "http://myproxy.com"
[https]
    sslVerify = false
    proxy = "https://myproxy.com"
[http "https://internalurls.com/"]
   sslVerify = false
    proxy = ""

此配置适用于 git 命令行,内部 url 已正确解析,但 GitKraken 仅使用 http 和 https 配置,而不是特定的 urls 配置。因此,每次我配置/尝试连接到内部 url 时,我都会注释掉一般 http 和 https 代理的行,这对我有用。

我希望 GitKraken 将来能让用户选择代理或阅读整个 gitconfig 部分以搜索所有代理。

我希望这个答案对你有所帮助。

于 2020-03-05T14:46:21.130 回答
0

我猜你使用 Gitkraken,我已经修复了这个错误 在此处输入图像描述

转到您的本地项目并使用命令

git remote add origin git@bitbucket.org:your/repo.git

git push -u origin master

于 2020-06-26T05:04:57.180 回答
0

我遇到了完全相同的问题,我使用了这两个命令,然后重新启动了我的系统。

git config --global --unset http.proxy

git config --global --unset https.proxy

于 2022-01-06T07:18:22.653 回答