从 github clone,如果走 git 协议一般会很慢,我这边一般会切换到 https 配置 git-credentials 和 access key,走 https 或者 socket5 代理,来提高速度,大概 500 KBi/s 的速度,so far so good.
但是这里需要单独生成 access key,且这个秘钥是暴露在文件中的。
所以想问大佬们,有没有人走 git 协议,去跑代理的?
any advice will be grateful.
1
unixeno 2020-03-18 11:59:05 +08:00 via Android
git 就是走的 ssh,所以得在 ssh 配置里加代理
|
2
v2byy 2020-03-18 12:00:28 +08:00 via iPhone
你说的是直接在 git config 中配置下 host 为 github 就走 http proxy ?需要单独生成 access key 吗
|
3
yuanfnadi 2020-03-18 12:01:21 +08:00
```
Host * UseKeychain yes Host github.com HostName github.com User git ProxyCommand nc -v -x 127.0.0.1:7891 %h %p ``` 不谢 |
4
yanyueio OP .ssh 文件中配置的 config 文件中设置的 http 或者 https 代理也只是配置的 http/https 的代理,它无法针对 ssh/git 生效。
@v2byy access key 是因为我配置了 2fa,即 google authenticator 两步验证,所以直接走 https 的密码不行,必须在 github 上的 developer 项目里生成 access key 代替原来的 github 密码。 |
5
exiledkingcc 2020-03-18 12:03:44 +08:00
我一般直接这样就行了:
export HTTPS_PROXY=.... git clone ...... |
6
yanyueio OP |
7
BrettD 2020-03-18 12:08:43 +08:00 via iPhone
@exiledkingcc 这个只能代理 HTTPS 不能代理 SSH 协议吧?
|
9
yanyueio OP OK,刚刚试了一下,借助 nc 命令,是可以走到 socks5 代理的。
然后速度大致是直接用 https 的一般 275 KiB/s 左右。 @sobigfish 这里的关键是想实现的是免密,且不明文暴露密码。 结贴了,感谢以上各位的热心。 我的最终配置如下: ```bash HOST github.com UseKeychain yes Host github.com HostName github.com IdentityFile /Users/yanyueio/.ssh/YanYueIO-PUB port 22 User git ProxyCommand nc -v -x 127.0.0.1:1086 %h %p ``` 再次谢谢各位了。 |
10
yanyueio OP 补充:
貌似速度和代理的拥塞程度有关,不一定是一半,有时候比直接用 https 的快。 remote: Enumerating objects: 1177, done. remote: Counting objects: 100% (1177/1177), done. remote: Compressing objects: 100% (205/205), done. Receiving objects: 32% (602/1879), 134.14 MiB | 1.16 MiB/s |
11
Tianao 2020-03-18 12:28:05 +08:00
export all_proxy=socks5://[IP]:[port]
|
12
wuwukai007 2020-03-18 12:35:52 +08:00
其实下载 zip 压缩包 并用迅雷下载超快的。
|
13
wujunze 2020-03-18 12:40:42 +08:00
软路由 + 番茄上网
GitHub clone 一般 10M/s 峰值 20M/s ![]( https://wujunze.com/blog-images/r/pic/20200318124007.png) |
15
CBS 2020-03-18 12:41:49 +08:00
|
16
brzhang 2020-03-18 12:42:31 +08:00 via iPhone
梯子
|
17
hshpy 2020-03-18 13:11:19 +08:00
proxychains
|
18
ysc3839 2020-03-18 13:20:09 +08:00 via Android
@yanyueio 你所说的 [email protected] 不是“git 协议”,是 SSH 协议的简写。
|
19
jinsongzhao 2020-03-18 13:20:09 +08:00
@wuwukai007 不考虑自动更新代码吗?
|
20
Songxwn 2020-03-18 13:21:54 +08:00
代理不行
[root@localhost ~]# git clone https://github.com/coolsnowwolf/lede.git Cloning into 'lede'... remote: Enumerating objects: 58485, done. Receiving objects: 35% (20685/58485), 70.76 MiB | 4.82 MiB/s |
21
exiledkingcc 2020-03-18 14:23:31 +08:00
@BrettD 是只能 https
|
22
hwenwur 2020-03-18 14:28:30 +08:00 via Android
alias git=""proxychains4 -q git"
|
23
xingheng 2020-03-18 14:36:38 +08:00
如果只是想做一次性 clone (不需要拉取更新)的话,可以加上--depth 1 的选项,可以让需要 clone 的 git objects 少一个数量级,对 commit 数量比较大的仓库尤其明显。间接提高速度了,我是从一些包管理工具封装的 git log 学到的。
|
24
mazyi 2020-03-18 16:55:33 +08:00
出国
|
25
msg7086 2020-03-18 17:00:43 +08:00 1
Git 协议是 git://
SSH 协议是 (ssh://)git@ GitHub 虽然支持 git 协议但是网页上只会给 SSH 和 HTTPS 两种。 |
26
IGJacklove 2020-03-18 17:32:27 +08:00
代理不就可以了?
|
27
Timzzzzz 2020-03-18 23:20:47 +08:00
可以是下 Proxychains 对我有效
|
28
binaryify 2020-03-19 09:31:28 +08:00
我是开 proxifier
|
29
akatquas 2020-03-19 10:45:51 +08:00
走代理是一条,
加 depth 也可以,后续分支按需拉 |
30
AlexaZhou 2020-03-19 13:36:46 +08:00
对各种命令行工具,可以用 proxychains 统一搞定
proxychains git clone .... 就自动走代理了 |
31
123444a 2020-03-22 01:44:20 +08:00 via Android
ssh,从小没用过 https 拉代码
|