如何让 git 通过代理和 IntelliJ Idea 工作?
Posted
技术标签:
【中文标题】如何让 git 通过代理和 IntelliJ Idea 工作?【英文标题】:How to get git to work through a proxy and IntelliJ Idea? 【发布时间】:2011-04-03 05:33:56 【问题描述】:如何在 IntelliJ Idea 中为 GIT 配置代理设置?我已经为插件设置了代理设置,但我无法为 GIT 找到它;并且帮助文件只提到了颠覆。
感谢任何帮助。
【问题讨论】:
【参考方案1】:你必须为 git 而不是为 intelliJ 配置代理,intelliJ 只会调用 git 命令行。
git config --global http.proxy yourProxy:port
应该这样做。
【讨论】:
在我的情况下,我必须添加一个额外的步骤才能使其工作 -> 在 Intellij -> 首选项 -> 搜索 git -> 选择 git -> ssh 可执行文件 -> 到本机。而不是内置的。这导致 bitbucket 正在使用 ssh。 使用git config --global http.proxy http://username:password@host:port
添加代理后,由于代理提供的自签名证书,我的克隆尝试失败。这个答案提供了证书错误的解决方案:***.com/a/11622001/669645【参考方案2】:
为了完整起见,我想添加如何跳过代理以使用 ssh 访问 git 服务器或安全站点,例如私有 github 存储库。
对于 intellij 使用此选项时,您必须在 Project Settings --> Version Control --> VCS --> Git --> SSH Executable 中选择使用 native ssh 实现
我们使用一种叫做开瓶器的工具。这适用于 CygWin(通过 cygwin 主页上的设置)和使用您最喜欢的打包工具的 Linux。
对于 MacOSX,我参考此blogpost 将其安装到您的 Mac 上。
命令行如下:
corkscrew <proxyhost> <proxyport> <targethost> <targetport> <authfile>
proxyhost和proxyport是https代理的坐标。
targethost 和 targetport 是要通过隧道连接的主机的位置。
authfile 是一个文本文件,其中 1 行包含您的代理服务器用户名/密码,以冒号分隔
例如:
abc:very_secret
使用 git:// 协议的安装:通常不需要!
创建帮助脚本来创建隧道创建一个脚本~/bin/gitproxy,其中包含:
#!/bin/bash
corkscrew proxy.colo.elex.be 3128 github.com 9148 ~/.ssh/proxy_auth
在 ~/.ssh/ 文件夹中创建 proxy_auth 文件
确保它不会被窥探。
设置环境变量为git定义代理命令
$ export GIT_PROXY_COMMAND=/home/pti/bin/gitproxy
您可以将其放在来自 .bashrc 的部分或脚本中,该部分或脚本会动态检测您是否在代理后面。如果未定义变量,则 git 将照常工作。
测试一下安装使用“普通”ssh 协议进行 git 通信 通过将其添加到 ~/.ssh/config 这个技巧可以用于普通的 ssh 连接
主机 gitproxy 主机名 github.com 端口 22 ProxyCommand 开瓶器 %h %p ~/.ssh/proxy_auth
享受吧!
【讨论】:
【参考方案3】:在我的情况下,我必须通过 MSDOS 命令行设置代理,然后它推送结果而没有 407 错误
SET HTTP_PROXY=http://user:passs@proxydomain.com:portnumber
【讨论】:
注意重启会清除这个conf,因此如果你想永远设置它,你应该把它添加到系统变量菜单中。这是此 Windows 设置过程的链接。 computerhope.com/issues/ch000549.htm以上是关于如何让 git 通过代理和 IntelliJ Idea 工作?的主要内容,如果未能解决你的问题,请参考以下文章
如何配置 TeamCity 构建代理以通过 SOCKS 代理使用 git 和 git:// 协议?
如何使用 Git / IntelliJ 将整个文件从一个分支移动/复制到另一个分支? [复制]