有何方法可以给github远程仓库的push提速
发布网友
发布时间:2022-04-20 11:36
我来回答
共2个回答
热心网友
时间:2022-04-14 09:24
把本地仓库推送到新仓库
这里我们在Android Studio创建一个新的项目,然后来到项目所在的位置,右键git bash,
键入:git init将这个项目变成带有git仓库的项目,这里我们拷贝下Github那里我们这个
仓库的地址:
,然后键入下述指令:
git remote add origin github.com/coder-pig/SimpleTea.git
指定完远程主机后,我们可以直接键入git remote来查看,或者加上-v:
接着我们键入下述命令把我们的仓库push到github上,这里的-u参数作为第一次提交使用,
作用是把本地master分支和远程master分支关联起来(设置默认远程主机),后续提交不需要这
个参数!
git push -u origin master
这时候打开我们的GitHub就可以看到我们的项目已经成功push上来了!
这里我们是通过git remote来设置远程仓库地址的,假如你想修改远程仓库地址,
比如你把仓库托管换成了Git@OSC,你需要修改远程地址,可以键入:
git remote set-url origin xxxx
来修改远程地址,你也可以先删除origin然后再添加:
git remote rm origin
还可以直接修改.git文件夹里的config文件,直接替换圈住位置:
另外,这个origin不是什么固定的东西,这个只是我们后面那个仓库地址的一个别名!!!
你可以写成其他的东西,比如我的项目既托管在Github又托管在Git@OSC,我可这样设置:
git remote add github https://github.com/coder-pig/SimpleTea.git
git remote add osc git@git.oschina.net:coder-pig/SimpleTea.git
这一点要弄清楚!!!
3.为项目添加SSH Key免去提交输入账号密码的麻烦
不知道细心的你有没有发现,仓库地址除了Https外,还有一个SSH,这里我们简单介绍下
两者的区别,第一点:使用Https url可以任意克隆Github上的项目;而是用SSH url
克隆的话,你必须是项目的拥有者或管理员,而且还要添加SSH Key,否则会无法克隆。
还有一点是,Https每次push都需要输入用户名和密码,而使用SSH则不需要输入用户名
如果配置SSH Key时设置了密码,则需要输入密码,否则直接git push就可以了!
另外,SSH,Secure shell(安全外壳协议),专为远程登陆会话与其他网络服务提供安全性
的协议, 而SSH传输的数据是可以经过压缩的,可以加快传输的速度,出于安全性与速度,
我们优先考虑使用SSH协议,而SSH的安全验证规则又分为基于密码和基于密钥两种!
我们这里用的是基于第二种的,即在本地创建一对密钥,公钥(id_rsa.pub)和私钥(id_rsa),
然后把公钥的内容贴到Github账号的ssh keys中,这样就建立了本地和远程的认证关系,
当我们再push到远程仓库,会将你本地的公共密钥与服务器的进行匹配,如果一致验证通过
直接推送更新!
下面我们来建立ssh key,首先来到电脑的根目录下,这里假定我们没创建过SSH key:
执行完ssh-keygen那个指令后,后面依次要你输入文件名,直接回车会生成两个默认的
秘钥文件,接着提示输入密码,直接回车,如果这里你输入密码了的话,那么push的时
候你还是需要输入密码,接着又输多一次密码,同样回车,然后出现最下面的这串东西
就说明ssh key已经创建成功了!
我们接着可以用编辑器打开id_rsa.pub文件或者键入:
clip <id_rsa.pub
复制文件内容,然后打开Github,点击你的头像,选择:Settings,然后点击左侧SSH Keys,
然后New SSH Key
然后Github会给你发来一个提示创建了一个新ssh key的邮件,无视就好,接下来我们可以
键入:ssh -T 779878443@qq.com,后面的是你的注册邮箱,然后如果你上面设置过
密码则需要输入密码,否则直接输入yes然后一直按回车就好!,最后出现Hi xxx那句话
就说明ssh key配置成功了!
热心网友
时间:2022-04-14 10:42
首先,提速ssh,不推荐使用https,国内本身就慢,还可能被dns污染。
修改 /etc/ssh_config 中的这一项,去掉#
GSSAPIAuthentication no
作用两个说法:
服务器端启用了GSSAPI。登陆的时候客户端需要对服务器端的IP地址进行反解析,如果服务器的IP地址没有配置PTR记录,那么就容易在这里卡住了。
是否允许使用基于 GSSAPI 的用户认证。默认值为"no"。仅用于SSH-2。
如果还慢,不建议开全局代理,太浪费了,推荐给ssh中得github域名做代理转发,下面是socket的代理实现方法:
同样在/etc/ssh_config 中,添加下面代码:
Host github github.com
Hostname github.com
User git
ProxyCommand /usr/bin/proxy-wrapper '%h %p'
然后我们创建proxy-wrapper 程序,就一行:
nc -x127.0.0.1:7070 -X5 $*
之后给予执行权限,再在本地开启一个7070的socket的代理端口,mac下推荐这个:
然后你每次提交push的时候,注意,这个只针对ssh的remote有效。然后你每次提交push的时候,注意,这个只针对ssh的remote有效。
所以修改remote的方法是
git remote set-url origin git@github.com:xx/xx.git 记得修改一下,因为有时候老的remote都是https的,我以前就总https clone,速度还是蛮快的。