文章目录:
linux2.6内核源码使用git下载失败,谁帮我下载
直接下载 tar 包不就行了……干嘛非要从 git 上面同步?
要知道 git 下载的可不是源代码。而是整个开发过程记录。kernel 这种超大项目,提交非常多的。100M 的源代码,可能需要 1000M 的数据。
用git获取源码的时候总是提示time out,请教各位什么原因
您好,我来为您解答:
通常是你的route设置有问题,route -a看看,是不是为这几个ip地址设置了不同的gateway.
我自己也碰到过,后来的原因找到了,和大家分享一下:
由于今天更新了一下360安全卫士,里面有一个网络保护的功能是自动开启的。
(360安全卫士 - 功能大全 - 网络保护)
我把它关掉,可以正常下载了。
如果我的回答没能帮助您,请继续追问。
git clone 太慢怎么办
Git 和 GitHub
的出现打开了开源世界的另一扇大门,版本控制变得更强大(也更复杂),项目的管理变得更加容易,项目的开发也变得更容易进行多人协作。GitHub
无疑是程序员的 Facebook
,在这里汇聚了无数世界顶级的项目以及顶级的程序员,你可以为你感兴趣的项目加星(Star),可以关注任何人(Follow)以及他们的项目
(Watch),而且更赞的是,你可以复制一份别人项目的副本(Fork),来进行自己的修改,如果你愿意的话,你还可以向项目的原作者发起请求
(Pull Request),将你做的修改合并到原项目中。这样无论你是什么人,来自不同的国家,拥有不同的技能,都可以对所有开源的项目作出贡献。
尽管上面描述的开源世界如此美好,但是在大天朝,在墙内,你却完全无法领略。因为当你访问 GitHub 时,或者使用 git clone 兴致勃勃的下载你感兴趣的项目时,巨慢的速度将彻底击毁你的信心,最终只好放弃表示玩不起。
强大的长城技术对 GitHub 网开一面,没有像 Google 或 Facebook 这样直接斩尽杀绝,但是对它做了严格的限速,这种折磨比直接毙了更痛苦( 有网友表示,有些地区速度很快,有些地区速度很慢,也有可能是和网络运营商有关 )。如上图所示, git clone 的下载速度从来没有超过 10KiB/s ,这也就意味着一个 100MiB 的项目,需要近三个小时才能下完,而且由于网络的不稳定性,下载过程中偶尔会出现断开连接的情况,由于 git clone 不支持断点续传,这让几个小时的下载时间白白浪费掉,只能重新开始。
这篇文章将介绍几种方法来快速从 GitHub 上下载代码。
一、git shallow clone
git clone 默认会下载项目的完整历史版本,如果你只关心最新版的代码,而不关心之前的历史信息,可以使用 git 的浅复制功能:
$ git clone --depth=1
--depth=1 表示只下载最近一次的版本,使用浅复制可以大大减少下载的数据量,例如, CodeIgniter 项目完整下载有近 100MiB ,而使用浅复制只有 5MiB 多,这样即使在恶劣的网络环境下,也可以快速的获得代码。如果之后又想获取完整历史信息,可以使用下面的命令:
$ git fetch --unshallow
或者,如果你只是想下载最新的代码看看,你也可以直接从 GitHub 上下载打包好的 ZIP 文件,这比浅复制更快,因为它只包含了最新的代码文件,而且是经过 ZIP 压缩的。但是很显然,浅复制要更灵活一点。
二、GUI 工具 + 代理
如果很有幸你正在使用代理,懂得如何翻墙的话,那么访问 GitHub 对你来说应该不在话下。下载 GitHub
上项目的最简单的方法就是使用一款图形化界面(GUI)的 Git 工具,这样的工具现在比比皆是。使用 GUI
工具方便的地方在于,可以在设置中配置是否要使用代理,将你翻墙所使用的代理 IP 拿过来配置上就 OK 了,或者更直接的,将代理配置为系统代理。
三、git + http.proxy
如果你跟我一样,喜欢使用原生的 git 命令,喜欢在命令行下操作的那种感觉,那么也可以在命令行下直接配置 git 使用代理,当然前提一样是,你懂得如何翻墙。
$ git config --global http.proxy
$ git config --global https.proxy
使用上面的命令配置完之后,会在 ~/.gitconfig 文件中多出几行:
[http]
proxy =
[https]
proxy =
你也可以使用下面的命令检查配置是否生效:
$ git config --global --get http.proxy
$ git config --global --get https.proxy
另外,如果你想取消该设置,可以:
$ git config --global --unset http.proxy
$ git config --global --unset https.proxy
配置完成后,重新 clone 一遍,可以看到速度得到了极大的提升!
题外话:在命令行中如何使用代理?
要注意的是使用 git config --global 配置的代理只能供 git 程序使用,如果你希望让命令行中的其他命令也能自动使用代理,譬如 curl 和 wget 等,可以使用下面的方法:
$ export http_proxy=
$ export https_proxy=
这样配置完成后,所有命令行中的 HTTP 和 HTTPS 请求都会自动通过代理来访问了。如果要取消代理设置,可以:
$ unset http_proxy
$ unset https_proxy
还有一点要注意的是,使用 http_proxy 和 https_proxy 只对 HTTP 和 HTTPS 请求有效,所以当你 ping 的时候如果 ping 不通的话,也就没什么大惊小怪的了。
题外话:如何使用 PAC 文件?
有时候我们会使用 git 访问不同的 git 仓库,譬如 GitHub,或者 Git@OSC, 或者你自建的 Git 服务器,但是只想访问 GitHub 的时候使用代理,访问其他的仓库不要使用代理。这时候我们似乎可以使用 PAC 来解决这个问题。 PAC (代理自动配置)正是用于浏览器来根据不同的 URL 自动采用不同的代理的一项技术,该文件包含一个 FindProxyForURL Javascript 函数,用于根据 URL 来返回不同的代理。
但是遗憾的是,目前 git 似乎还不支持 PAC 文件,但我们可以打开 PAC 文件找到代理的地址,然后通过上面的方法来配置或取消配置,只是有些繁琐。 也许可以写个脚本来解析 PAC 文件,并将 git 包装下,来实现自动切换代理,有机会尝试下。
,最终只好放弃表示玩不起。强大的长城技术对 GitHub 网开一面,没有像 Google 或 Facebook 这样直接斩尽杀绝,但是对它做了严格的限速,这种折磨比直接毙了更痛苦( 有网友表示,有些地区速度很快,
有些地区速度很快,有些地区速度很慢,也有可能是和网络运营商有关 )。如上图所示, git clone 的下载速度从来没有超过 10KiB/s ,这也就意味着一个 100MiB 的项目,需要近三个小时才能下完,而
目,需要近三个小时才能下完,而且由于网络的不稳定性,下载过程中偶尔会出现断开连接的情况,由于 git clone 不支持断点续传,这让几个小时的下载时间白白浪费掉,只能重新开始。这篇文章将介绍几种方法来快速从 GitHub 上下载
ps] proxy = 你也可以使用下面的命令检查配置是否生效:$ git config --global --get http.proxy$ git config --global --