独书先生 Menu

Viewing all items for tag github

github clone很慢,github上不去,github.io无法访问

问题

github 是程序员必备的代码仓库和学习网站,但是当你发现一个开源库并把它clone下来的时候,发现一直卡住不动,及时能下载也只有几k的速度。

并且,虽然能上github,细心的同学可以发现,大多数github站内图片也是打不开的。

还有的项目的博客或者文档是托管在github.io上的,这个网址也经常是访问不了。

有没有什么补救措施?

解决

首先参考众多网友的智慧,马上就有了方案

方案一:设置git config

修改下git的配置

git config --global http.postBuffer 524288000

有同学用了这个配置,速度就提升了,但是小编用了没有效果,可能还是要看网络原因。

方案二:cnpm镜像

国内大型镜像系统cnpm的服务又来啦!

操作很简单,只要我们将原本的网站中的https://github.com 进行替换为https://github.com.cnpmjs.org即可,比如,

git clone https://github.com/openHacking/vuepress-plugin-qrcode

可以改为

git clone https://github.com.cnpmjs.org/openHacking/vuepress-plugin-qrcode

笔者经过试验,速度确实有所提升,快的时候大概有500k的样子。但是因为镜像是有同步周期的,如果是对实时性要求比较高的小伙伴,需要注意下这个问题。

方案三:gitee同步

这是一个利用gitee.com(码云)的github仓库的一键同步服务,来做一个中转,实现快速下载github项目的目的。

具体操作:

1.注册【码云】

2.通过【码云】【从github导入已有项目】

3.git clone【码云】中的项目

注意:笔者试验过确实可以同步,而且码云的速度还挺快。但是有两个缺点:1.每看到一个库就同步再下载,有点麻烦 2.如果仓库太大,是同步不过来的。所以这个方案也不是万能的。

方案四:修改host文件

git clone特别慢是因为github.global.ssl.fastly.net域名被限制了。
只要找到这个域名对应的ip地址,然后在hosts文件中加上ip–>域名的映射,刷新DNS缓存便可。

具体操作:

  1. 在网站 https://www.ipaddress.com/ 分别搜索:
github.global.ssl.fastly.net
github.com

得到对于的ip地址

  1. 打开hosts文件

– Windows上的hosts文件路径在C:\Windows\System32\drivers\etc\hosts
– Linux的hosts文件路径在:sudo vim /etc/hosts

  1. 在hosts文件末尾添加两行(对应上面查到的ip)
151.101.185.194 github.global-ssl.fastly.net
192.30.253.112 github.com
  1. 保存更新DNS

– Winodws系统的做法:打开CMD,输入ipconfig /flushdns
– Linux的做法:在终端输入sudo /etc/init.d/networking restart

  1. 重新git clone试试

注意:建议多试验几家ip地址获取的服务,因为ip也有被污染的情况,通常一个ip不一定靠谱。笔者经过尝试,发现这种方法并不是很奏效,git clone还是龟速。

方案五:代理

通过本地代理软件,将github代理转发到可以高速访问的服务器上,代理技术有很多应用场景,现在就是一个。

大致步骤:
1. 大多数同学会推荐shadowsocks,加上免费白嫖的账户,就可以链接上了
2. 设置github代理

git config --global http.https://github.com.proxy https://127.0.0.1:1080
git config --global https.https://github.com.proxy https://127.0.0.1:1080

注意这是对https的仓库链接有效果。

小编试验完,发现这个代理并没有作用,已经显示连接上了,但是网速依然感人,不知道哪里出了问题。欢迎试验成功的小伙伴留言区告诉小编。

其实小编估摸着大家已经把所有的方案都试过一遍了,效果还是不如人意。饱含着一整个工作日的研究与心酸泪,小编最后终于发现了一个终极大招:EXPRESS

因为小编想通了一件事情,作为一个合格的程(da)序(gong)猿(ren),没有一款能够稳定输出、坚挺硬刚的强力代理软件,是无法正常享受流畅开发体验的,现在都5G时代了,下个github代码还在5k的速度,内心再也不能接受。

可能有小伙伴对这块有所研究,或许已经成为大家的每日必(kan)备(pian)工(shen)具(qi)。如果有小伙伴对此有所疑虑,那么小编推荐大家仔细阅读下面这篇文章。小编仔细阅读了这篇推心置腹的文章之后,就迅速入手了,也解决了小编多年的上网烦恼。

程序员必备姿势

这是小编使用过的最稳定最快的代理服务,没有之一。

动手做起来,你就成功了一半。

提交main主分支后接着提交gh-pages分支

需求

我们在github建立的项目,有时候需要发布GitHub pages,有两种方案,1是源码一个仓库,打包后代码放到另一个仓库的gh-pages分支,2是源码一个仓库main分支,打包后代码还是放在本仓库的gh-pages分支。我们这里采用第二种方式

步骤

我们以线上开源项目vuepress-template为例,这一个vuepress 模板项目,打包后生成的dist文件夹在docs/.vuepress文件夹目录下

第一步:打包文件

npm run docs:build

第二步:dist提交git

git add docs/.vuepress/dist
git commit -m "Initial dist subtree commit"

第三步:push dist

git subtree push --prefix docs/.vuepress/dist origin gh-pages

git多账户管理: 区分全局账户和本地账户

问题

公司使用gitlab私有仓库,开发把代码clone下来,并配置了全局账户,这样每次提交不用登陆,然后自己在github私有仓库的代码clone下来后续如何配置提交?

解决方案

针对使用https作为git地址的方法:
采用git提供的本地存储账户信息功能,把github自己的账户配置上本地登录信息.

步骤

  1. 查看项目地址
git remote -v

得到 https://github.com/XXX/YYY.git 的项目地址,XXX:为你的用户名, YYY是你的项目名, 复制下来,其实直接从github仓库中copy也一样

  1. 设置新的带用户名的地址,即在https://和github之间加上”用户名@”即可
git remote set-url origin https://XXX@github.com/XXX/YYY.git
  1. 设定本地项目的账户密码存储
git config --local credential.helper store
  1. 正常修改代码push一次,第一次会让你输入密码,之后就不用了
    git常用操作

tips:

查看是否有credential.helper

git config --global -l
git config --system -l

清除全局设置

git config --global --unset credential.helper
git config --system --unset credential.helper

我的是使用 git config --system -l 打印中包含 credential.helper=manager
说明全局已经配置

文章 github多账号如何切换? 中提到要把全局配置unset掉,我没弄,本地仓库也可以正常push,所以有什么细节可以参考下原文

https://appsoftea.com/zh/git-multiple-account/
引用自: https://www.zhihu.com/question/23028445 感谢!