克隆公司 git 存储库

cloning a corporate git repo

我通常在代理后面使用 git。因此,我在全局配置中设置了这些。 git config -l --global 有 http 和 https 条目。

但是为了访问公司 git 存储库,我必须取消设置全局代理然后克隆。

是否有替代方案,我不必像这样更改全局设置?

您是否尝试过为 http_proxyhttps_proxyno_proxy 设置环境变量?

在 SO 上查看这两个答案:

Only use a proxy for certain git urls/domains?

最好的方法是写一个批处理文件,设置代理和取消代理,然后运行通过。

Configure Git proxy 使用 git 代理命令

git config --global http.proxy http://username:password@proxy.server.com:8080
git config --global https.proxy http://username:password@proxy.server.com:8080

Replace username with your proxy username
Replace password with your proxy password
Replace proxy.server.com with the proxy domain URL.
Replace 8080 with the proxy port no configured on the proxy server.

如何删除 Git 代理? 删除 Git 代理命令 PHP

git config --global --unset http.proxy
git config --global --unset https.proxy

如何验证当前设置的 Git 代理?

git config --global --get http.proxy
git config --global --get https.proxy

Git 是用 3 个不同的配置文件编写的:

  • 系统级配置
  • 用户范围配置
  • 第二个用户范围配置
  • 本地仓库配置

注意:以下教程假定您已将代理配置保存在全局或用户特定配置中,就像 OP 一样。

正在从我们现有的存储库中删除代理

我们可以通过简单的 cd-ing 到目录和 运行ning:

来删除现有公司存储库中的代理
git config --local --add http.proxy ""

这会将代理设置为空字符串,git 用来指定进行直接通信。

不使用代理克隆存储库

这种情况比较棘手,因为我们需要取消设置代理、克隆并重新配置代理。为此,我们可以编写一个名为 "proxyless-clone" 的简单 bash 脚本(名称并不重要)来执行以下步骤:

#!/bin.sh
http_proxy=$(git config http.proxy)
https_proxy=$(git config https.proxy)
git config --global --unset http.proxy
git config --global --unset https.proxy
git clone ""
git config --global http.proxy "$http_proxy"
git config --global https.proxy "$https_proxy"

此脚本仍有一些 "problems",即 2 个实例不能同时 运行 而不会弄乱 git 配置文件(将其视为线程错误) , 但对于像克隆这样的东西和 1-shot only 的东西,我认为这不是问题。