使用 --depth=1 克隆 Git 仓库时如何查找提交次数

8
要查找git分支上的提交次数,可执行以下操作:

$ git rev-list --count branch_name

$ git rev-list --count HEAD
920

然而,如果您最初使用--depth=1进行克隆,则此方法不起作用:
$ git clone https://github.com/ndmitchell/hoogle.git --depth=1
$ cd hoogle
$ git rev-list --count HEAD
1

有没有办法在使用--depth=1克隆仓库时保持速度和减少网络流量的同时获得提交数的数量统计?
2个回答

4
有没有办法获得 --depth=1 克隆的速度和减少的网络流量,同时又能获取提交次数的计数?我很确定你做不到。如你所知,--depth=1 仅检索最近推送的提交。这意味着当你使用深度为 1 的克隆时,你只会得到一个提交,并且完全没有与之相关的历史记录。就你的本地仓库而言,没有历史记录,只有这一个提交。正如 文档 中提到的那样,“--depth” 创建一个浅克隆,其历史记录被截断到指定数量的修订版。我还发现有趣的是,即使你检查源
$ git rev-list --count origin/master
$ git log origin/master

他们都只显示了1个提交。


0

这可能并不适用于所有情况,但在某些使用案例中,您可以使用以下方法(假设使用 Git 1.8.3+)将浅克隆转换为完整克隆,具体可参考 如何将 Git 浅克隆转换为完整克隆

git fetch --unshallow

这将使您能够像平常一样获得正确的计数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接