公司内网 git 访问外网需要设置代理,而一般网上给出的设置方法是 git config --global http.proxy 192.168.4.12:8080。

确实可以起作用,然而,上面的命令中,有一个 --global,可以猜测到这个是一个全局配置,对所有的提交行为都生效。那如何对单个项目配置生效呢?

摸索了一下,发现 git 提供了一个 config 命令,运行之,可以看到这些信息:

Git 设置网络代理Git 设置网络代理

Git 设置网络代理

看 Config file location 那一项,有 global, system, local, blob 这几个值。后面的解释说的很清楚:

global 即是读/写当前用户全局的配置文件(~/.gitconfig 文件,属于某个计算机用户)

system 即是读写系统全局的配置文件(/etc/gitconfig 文件,属于计算机)

local 即是当前 clone 仓库 的配置文件(位于 clone 仓库下 .git/config)。

blob 配置是另外一种形式,提供一个 blob 大对象格式,没有验证过,估计与 local 是一样的,只是形式不同。

上面各种配置应该需要充分考虑含义。

比如,有些是从 github 远程仓库的 clone, 有些是公司内网仓库的 clone,前者需要配置网络代理才能拉取,提交代码,后者不能配置网络代理。那我们的操作就是

只对 github 的 clone 仓库配置:进入 github clone 仓库,运行 git config --local http.proxy 192.168.4.12:8080

之后就可以看到 .git/config 文件中多了最下面两行

Git 设置网络代理

[http]
proxy = 10.xx.xx.xx:8080

Git 设置网络代理这也意味着,我们直接按上面改这个配置文件也能达到同样的目的。

相关文章:

  • 2021-05-25
  • 2021-10-23
  • 2021-11-27
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-02-16
  • 2022-12-23
  • 2021-12-29
  • 2021-06-18
  • 2021-07-23
  • 2021-07-15
相关资源
相似解决方案