--depth
我们经常会用 git clone 来下载项目,但遇到大项目的时候,clone 就很慢,比要等很久。
当然,还有更慢的项目。这类项目可以通过 --depth 1 来加速:
1 | git clone --depth 1 https: //github .com /facebook/react |
这速度快了有几十倍吧!越大的项目加速效果越明显。下载下来的代码少了历史 commit
当 git clone 下载大项目的时候,加个 --depth 1 可以提速几十倍。
下载下来的项目也可以正常的 pull 和 push。
这是因为 git 是通过 commit、tree、blob 的对象存储的,每个 commit 是关联这些对象的入口。
depth 1 只会下载最后一个 commit 关联的 object,下载内容更少,所以速度快很多。
但这种方式有两个问题:
- 切换不到历史 commit
- 切换不到别的分支
没有历史 commit 可以通过 git pull --unshallow 解决。
切不到别的分支是因为 fetch 配置导致的,配置成 +refs/heads/*:refs/remotes/origin/* 也就可以了,也就是拉取远程所有分支代码到本地。
这样再 fetch 和 pull 就会拉取所有分支的新 commit,也可以正常的切分支。
--depth 1 在下载大项目的时候,或者 build 时下载代码的时候,都很有意义。它提高下载速度导致的俩后遗症也都可以解决。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)