上一篇有讲到克隆远程仓库,在 clone 时,如果每次都 clone 完整的仓库的话,随着提交的次数变多,在项目变大之后,clone 的速度会非常的慢。

所以克隆时可以设定参数 --depth 1,加快 clone 速度

-- depth代表克隆的深度,--depth 1代表只克隆最新一次提交记录以及这次提交之后的最新内容,不克隆历史提交。

这样所造成的影响就是不能查看历史提交记录,但是克隆速度大大提升。

完整命令:

git clone --branch   --depth 1

查看 commit 总数,可用:

git rev-list --all --count
或者
git log --oneline | wc -l

后续补充:
注意,这里 git rev-list 查看到的提交数量,并不一定和仓库中显示的提交数一样,获取的原理不同。后者是一致的。
详细请查看官方文档关于git rev-list的说明。

查看简要显示日志,可用:

git log --all --oneline

示例,今日(2019/12/25)克隆 github 中 tensorflow 项目,深度只有 1 层,
编写本文示例测试耗时大约4 分 15 秒,其它内容如下图:

1.png

而直接 clone master 分支的全部,
编写本文示例测试耗时大约13 分 30 秒,其它内容如下图:

2.png

2019/12/26 补充,如果想看实际耗时,在 git 命令前加 time 关键词。

如果后续想看完整的历史记录,可以将浅层克隆转换为常规克隆。使用:

git pull --unshallow
或者
git fetch --unshallow

不过,这就是重新抓取了该分支所有的提交,也就不如直接一开始就拉取所有了。

使用示例(同样编写本文示例测试耗时大约13 分 30 秒):

3.png

查看当前分支所有提交者及其提交次数,按次数由高到低排序,可用:

git log | grep "^Author: " | awk '{print $2}' | sort | uniq -c | sort -k1,1nr

4.png