命令行模式下配置

git config --global https.proxy https://proxyuser:proxypassword@ip/域名:port

git config --global http.proxy http://proxyuser:proxypassword@ip/域名:port

示例:

假设某人在百度工作,公司代理服务器是(proxy.baidu.com),端口是(8080),代理配置如下

1、代理服务器需要鉴权配置

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

2、代理服务器不需要鉴权配置

git config --global https.proxy https://proxy.baidu.com:8080

密码中特殊字符处理

如果密码中有@等特殊字符,会出错,比如

git config --global http.proxy http://username:abc@123@proxy.baidu.com:8080

解析时会从第一个@解析,提示@123@proxyhk.huawei.com找不到,此时要对其中的特殊符号进行处理,使用百分比编码(Percent-encoding)对特殊字符进行转换,转换列表如下:

! --> %21    # --> %23    $ --> %24    & --> %26    ' --> %27

( --> %28    ) --> %29    * --> %2A    + --> %2B    , --> %2C

/ --> %2F    : --> %3A    ; --> %3B    = --> %3D    ? --> %3F

@ --> %40    [ --> %5B    ] --> %5D

参考资料:http://stackoverflow.com/questions/6172719/escape-character-in-git-proxy-password

如以上示例中的配置,可以替换为:

git config --global http.proxy http://username:abc%40123@proxy.baidu.com:8080

配置成功后,主要的功能就打通了,接下来就可以克隆github的代码了。

常见错误

1、克隆失败,提示:server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none

解决方法:

export GIT_SSL_NO_VERIFY=1

git config --global http.sslverify false

2、提示:GnuTLS recv error (-9): A TLS packet with unexpected length was received

error: RPC failed; result=56

解决方法:

配置以下三条命令

export GIT_TRACE_PACKET=1

export GIT_TRACE=1

export GIT_CURL_VERBOSE=1

3、以上命令还不生效,则祭出大杀器

此问题为git中依赖gnutls的bug,需要对将git中的gnutls强制替换为openssl,重新编译即可

解决方案:http://askubuntu.com/questions/186847/error-gnutls-handshake-failed-when-connecting-to-https-servers/187199#187199

作者:泡芙掠夺者
链接:https://www.jianshu.com/p/27365d2542d7
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

git代理配置的更多相关文章

  1. git 代理配置方式

    # 设置ss git config --global http.proxy 'socks5://127.0.0.1:1080' git config --global https.proxy 'soc ...

  2. 奇怪的git代理超时问题

    曾几何时在公司用代理上过网,后来在家里使用git訪问csdn code和github就出现代理超时的问题,例如以下: $ git clone https://github.com/bumptech/g ...

  3. nginx常用代理配置

    因为业务系统需求,需要对web服务作nginx代理,在不断的尝试过程中,简单总结了一下常见的nginx代理配置. 1. 最简反向代理配置 在http节点下,使用upstream配置服务地址,使用ser ...

  4. 小丁带你走进git世界一-git简单配置

    小丁带你走进git世界一-git简单配置 1.github的简单配置 配置提交代码的信息,例如是谁提交的代码之类的. git config  –global user.name BattleHeaer ...

  5. niginx代理配置

    常用关键词:rewrite.proxy_pass location ^~ /address/ { proxy_set_header Host xx.sohu.com; #设置header proxy_ ...

  6. apache 反向代理配置

    配置前资料检查: 1.可以使用的apache 安装apache服务:打开cmd , 在apache的bin目录下执行以下命令 httpd -k install -n apache2.2    其中&q ...

  7. nginx反向代理配置及优化

    nginx反向代理配置及优化前言: 由于服务器apache抗不住目前的并发.加上前端squid配置后,问题依然无法解决.而页面程序大部分是动态.无法使用fastcgi来处理.因此想使用nginx做为反 ...

  8. git的配置

    git的配置: Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量. 这些环境变量,决定了 Git 在各个环节的具体工作方式和行为.这些变量可以存放在以下三个不 ...

  9. git无法clone远程代码库及git代理设置

    git作为一个版本管理神器,日常工作中自然也就少不了了:特别是Android开发,github和google是逃不过的了.然而很多时候需要用到git克隆远程的代码库,众所周知的原因google.and ...

随机推荐

  1. java 秒时间格式化

    public static String durationFormat(Integer totalSeconds) { if (totalSeconds == null || totalSeconds ...

  2. 递归----Python

    #递归不仅仅是学习python中会遇到的一些问题,在学习每一个语言的过程中都会遇到递归.使用递归可以让复杂的循环变得简单. 递归:程序调用自身的行为 1.写一个数的阶乘 #递归 def factor( ...

  3. c#分布式ID生成器

    c#分布式ID生成器   简介 这个是根据twitter的snowflake来写的.这里有中文的介绍. 如上图所示,一个64位ID,除了最左边的符号位不用(固定为0,以保证生成的ID都是正数),还剩余 ...

  4. Hibernate中get()和load()方法区别

    get和load方式是根据id取得一个记录下边详细说一下get和load的不同,因为有些时候为了对比也会把find加进来. 1.从返回结果上对比:load方式检索不到的话会抛出org.hibernat ...

  5. 20175224 2018-2019-2 《Java程序设计》第四周学习总结

    教材学习内容总结 子类的定义 class 子类名 extends 父类名 { ... } 子类继承性 子类继承父类的成员变量.方法.成员变量可以被子类中自己定义的任何实例方法操作:继承的方法可以被子类 ...

  6. Annotation(注解)介绍

    Annotation(注解)是什么: Annotation(注解) 官方的定义:    An annotation is a form of metadata, that can be added t ...

  7. Vue对Html标签应用条件渲染

    我的需求 在flag属性为true时 渲染标签的html为 <input :data-val-required="不能为空"/> 在flag属性为false时 渲染标签 ...

  8. .NET复习笔记-泛型

    1.yield关键字用于返回迭代器具体的值,如下框代码所示 /// 返回0~9整数集合 public static IEnumerable<int> yieldSampleMethod() ...

  9. c++ — 运算符重载与strcmp自实现

    #include <iostream> #include <string.h> #include <stdlib.h> using namespace std; c ...

  10. PAT—优化Java从控制台读取信息的速度

    PAT对Scanner类很不友好,会花费大量时间,导致运行时间超时.可采用下列代码优化时间 BufferedReader bf = new BufferedReader(new InputStream ...