git代理设置
不建议
设置全局代理, 多环境下可能混乱- 注意使用协议,能使用
ssh协议
尽量使用ssh协议
方式 - 具体的代理ip和端口视情况调整,以下用端口
1080
示例
HTTP协议代理设置
1、使用命令直接设置代理
--global
表示全局,不需要可以不加
git config --global https.proxy ***
例子:
# socks
git config --global http.proxy 'socks5://127.0.0.1:1080'
git config --global https.proxy 'socks5://127.0.0.1:1080'
# http
git config --global http.proxy http://127.0.0.1:1080
git config --global https.proxy https://127.0.0.1:1080
# 只对github.com使用代理,其他仓库不走代理
git config --global http.https://github.com.proxy socks5://127.0.0.1:1080
git config --global https.https://github.com.proxy socks5://127.0.0.1:1080
# 取消github代理
git config --global --unset http.https://github.com.proxy
git config --global --unset https.https://github.com.proxy
2、直接修改
~/.gitconfig
文件
[http]
proxy = socks5://127.0.0.1:1080
[https]
proxy = socks5://127.0.0.1:1080
3、取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy
SSH协议代理设置
修改ssh配置文件
~/.ssh/config
没有的话新建一个文件
Windows
ssh配置文件路径:
C:\Users\你的用户名\.ssh\config
Linux
ssh配置文件路径:
/home/你的用户名/.ssh/config
ProxyCommand connect -S 代理地址:端口 %h %p
例子
# 全局
# ProxyCommand connect -S 127.0.0.1:1080 %h %p
# 只为特定域名设定
Host github.com gitlab.com
ProxyCommand connect -S 127.0.0.1:1080 %h %p
-S
代表走
socks
代理。(
-H
实现http和https的仓库的克隆)
多个地址设置:
Host
后面使用空格隔开,而不是
,
多账号设置
生成公私钥,并在对应账号配置公钥
// 生成两个邮箱对应的ssh公私钥
ssh-keygen -t ed25519 -C "1@email"
ssh-keygen -t ed25519 -C "2@email"
配置例子:
# Host:仓库网站的别名,随意取
# HostName:仓库网站的域名(PS:IP 地址应该也可以)
# User:仓库网站上的用户名
# IdentityFile:私钥的绝对路径
Host aa.github.com
Hostname ssh.github.com
Port 22
User aa
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_aa
ProxyCommand connect -S 127.0.0.1:1080 %h %p
Host bb.github.com
Hostname ssh.github.com
Port 22
User bb
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_bb
ProxyCommand connect -S 127.0.0.1:1080 %h %p
测试:
$ ssh -vT git@仓库网站的别名
$ ssh -vT [email protected]
$ ssh -vT [email protected]
$ ssh -vT [email protected]
clone代码
git@仓库网站的别名:项目地址.git
**
使用多账号时,删除全局的配置,然后再项目下单独配置
**
删除全局的配置
git config --global --unset user.name
git config --global --unset user.email
git config --global --unset user.password
项目下配置
git config user.name "name1"
git config user.email "1@email"
之后再添加远程仓库的时候,就不能直接使用
http
的方式了,
只能使用ssh
方式.
版权归原作者 coding绝了都 所有, 如有侵权,请联系我们删除。