【问题标题】:Let git / go get use proxy domains让 git / go get 使用代理域
【发布时间】:2014-07-26 21:39:37
【问题描述】:

阅读前:我不想做恶意的事情,而是建立一个工具链来克服go get的缺陷。

我想要一个允许以下操作的设置:

  • 我有一组域,例如 github.com、bitbucket.org 等。
  • 如果 git 从任何域克隆/推送/拉取远程存储库 域被解析为我的代理的 IP 地址
  • 对于任何其他程序,域解析为真实 IP 地址
  • 我的代理应该是一个托管/缓存存储库的程序,如果它们不在缓存中,则从真实目标克隆它们。这个程序应该用 Go 编写

git 命令必须正常使用。 Git 配置可能会改变。

我们的想法是让团队的所有开发计算机都以这种方式配置,这样任何 外部存储库实际上是代理上的克隆。可以集中管理该克隆(特殊更改、上游合并等),而不会影响导入路径。

如何设置 DNS 伪造? 必须如何构建代理才能正确使用 git?

【问题讨论】:

  • 为什么不直接使用来自thereget.govcs.go 编写mygo get?由于某些未知的原因,人们倾向于将go get 工具视为灌输给他们使用的东西,但这是错误的:如果该工具不适合您,请编写另一个有效的工具。
  • 另一个建议:没有必要搞乱DNS。导入路径除了指定不同的包之外没有任何语义含义。因此,您可以使用将导入路径映射到源代码存储库的任何类型的数据库。
  • @kostix 我知道我可以编写另一个 go get 替代方法以及导入路径是什么。然而,这不是这里的问题。我只是想走上面提到的路线。
  • 您不需要弄乱 DNS - 您只需设置一个 git 代理即可完成您的工作。或者您可以在 /etc/hosts 或类似的简单内容中定义您的代理。话虽如此,与仅将 go get 包装在您自己的命令中或使用诸如 godep 之类的东西相比,您的建议在所需的工作方面非常过分。
  • 重新 git 代理 - 这是配置代理的示例。 stackoverflow.com/questions/783811/…

标签: git proxy dns go


【解决方案1】:

git 1.8.5开始,可以直接在git全局设置代理中设置特定的url:

[http "http://github.com" ]
  proxy = http://my.proxy:8080
[https "https://github.com" ]
  proxy = http://my.proxy:8080

见“Only use a proxy for certain git urls/domains?

当您只想对某些 url 使用代理时,这很有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-08
    • 2013-04-10
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-07
    相关资源
    最近更新 更多