title: "Git设置网络代理同时支持http和git模式"
date: 2021-01-11T18:05:42+08:00
draft: true
tags: ['git']
author: "dadigang"
author_cn: "大地缸"
personal: "http://www.real007.cn"
关于作者
git config --global http.proxy xxx.xxx.xxx.xxx:ppp
以下为转载
公司内网 git 访问外网需要设置代理而一般网上给出的设置方法是 git config --global http.proxy 192.168.4.12:8080
确实可以起作用然而上面的命令中有一个 --global可以猜测到这个是一个全局配置对所有的提交行为都生效那如何对单个项目配置生效 呢
摸索了一下发现 git 提供了一个 config 命令运行之可以看到这些信息
看 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 文件中多了最下面两行
[http]
proxy = 10.xx.xx.xx:8080