Git push via proxy + https

 

Git push 默认用git协议,通常情况下大家都可以忽略,透明使用。

 

然而很多公司需要设置代理,且禁用了一些端口,常见的错误类似于:

bright_zheng@BRIGHT-ZHENG /c/projects_learning/learning-jtwissandra (master)
$ git push -u origin master
ssh: connect to host github.com port 22: Bad file number
fatal: The remote end hung up unexpectedly

导致无法同步到服务端。

 

此时就需要考虑使用https来push。

以Github + Windows XP设置为例,一般步骤如下:

1. 进入Git Bash,生成ssh证书

$ ssh-keygen

 

2. 把生成的key拷贝到当前用户的.ssh下,比如C:\Documents and Settings\bright_zheng\.ssh

 

3. 拷贝并保持pub的string到github里

 

4. 设置必要的参数,如http_proxy, user, email等:

$ git config --global http.proxy=yourproxyserver:theport

$ git config --global user.name "Bright Zheng"

$ git config --global user.email youremail@xxx

 

5. 设置好curl的证书

如果看到这样的错误:

$ git push https://[email protected]/itstarting/jtwissandra.git
Password:
error: error setting certificate verify locations:
  CAfile: /bin/curl-ca-bundle.crt
  CApath: none
 while accessing https://[email protected]/itstarting/jtwissandra.git/info/refs


fatal: HTTP request failed

 

那需要设置好curl的证书,让其能找到

git config --system http.sslcainfo C:/tools/Git/bin/curl-ca-bundle.crt

 

6. 在完成必要的commit后,push吧:

git push https://[email protected]/itstarting/jtwissandra.git

提示你输入密码,键入ssh-keygen时你输入的密码即可同步到Github了。

你可能感兴趣的:(github,git,proxy,https)